You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[`LearnAPI.predict_proxy`](@ref)`(algorithm)`|`LearnAPI.None()`| form of target proxy output by `predict`|`LearnAPI.Distribution()`|
56
-
|[`LearnAPI.predict_joint_proxy`](@ref)`(algorithm)`|`LearnAPI.None()`| form of target proxy output by `predict_joint`|`LearnAPI.Distribution()`|
57
-
|[`LearnAPI.position_of_target`](@ref)`(algorithm)`|`0`| † the positional index of the **target** in `data` in `fit(..., data...; metadata)` calls | 2 |
58
-
|[`LearnAPI.position_of_weights`](@ref)`(algorithm)`|`0`| † the positional index of **per-observation weights** in `data` in `fit(..., data...; metadata)`| 3 |
66
+
|[`LearnAPI.preferred_kind_of_proxy`](@ref)`(algorithm)`|`LearnAPI.None()`| an instance `tp` of `KindOfProxy` for which an implementation of `LearnAPI.predict(algorithm, tp, ...)` is guaranteed. |`LearnAPI.Distribution()`|
67
+
|[`LearnAPI.position_of_target`](@ref)`(algorithm)`|`0`| ¹ the positional index of the **target** in `data` in `fit(..., data...; metadata)` calls | 2 |
68
+
|[`LearnAPI.position_of_weights`](@ref)`(algorithm)`|`0`| ¹ the positional index of **per-observation weights** in `data` in `fit(..., data...; metadata)`| 3 |
59
69
|[`LearnAPI.descriptors`](@ref)`(algorithm)`|`()`| lists one or more suggestive algorithm descriptors from `LearnAPI.descriptors()`| (:classifier, :probabilistic) |
60
70
|[`LearnAPI.is_pure_julia`](@ref)`(algorithm)`|`false`| is `true` if implementation is 100% Julia code |`true`|
61
71
|[`LearnAPI.pkg_name`](@ref)`(algorithm)`|`"unknown"`| name of package providing core code (may be different from package providing LearnAPI.jl implementation) |`"DecisionTree"`|
|[`LearnAPI.human_name`](@ref)`(algorithm)`| type name with spaces | human name for the algorithm; should be a noun | "elastic net regressor" |
67
77
|[`LearnAPI.iteration_parameter`](@ref)`(algorithm)`|`nothing`| symbolic name of an iteration parameter |:epochs|
68
78
|[`LearnAPI.fit_keywords`](@ref)`(algorithm)`|`()`| tuple of symbols for keyword arguments accepted by `fit` (corresponding to metadata) |`(:class_weights,)`|
69
-
|[`LearnAPI.fit_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `fit(algorithm, verbosity, data...)`††|`Tuple{Table(Continuous), AbstractVector{Continuous}}`|
70
-
|[`LearnAPI.fit_observation_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(observation)` for `observation` in `data` and `data` in `fit(algorithm, verbosity, data...)`††|`Tuple{AbstractVector{Continuous}, Continuous}`|
71
-
|[`LearnAPI.fit_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `type(data)` in `fit(algorithm, verbosity, data...)`††|`Tuple{AbstractMatrix{<:Real}, AbstractVector{<:Real}}`|
79
+
|[`LearnAPI.fit_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `fit(algorithm, verbosity, data...)`²|`Tuple{Table(Continuous), AbstractVector{Continuous}}`|
80
+
|[`LearnAPI.fit_observation_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(observation)` for `observation` in `data` and `data` in `fit(algorithm, verbosity, data...)`²|`Tuple{AbstractVector{Continuous}, Continuous}`|
81
+
|[`LearnAPI.fit_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `type(data)` in `fit(algorithm, verbosity, data...)`²|`Tuple{AbstractMatrix{<:Real}, AbstractVector{<:Real}}`|
72
82
|[`LearnAPI.fit_observation_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `type(observation)` for `observation` in `data` and `data` in `fit(algorithm, verbosity, data...)`*|`Tuple{AbstractVector{<:Real}, Real}`|
73
-
|[`LearnAPI.predict_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `predict(algorithm, fitted_params, data...)`†† |`Table(Continuous)`|
74
-
|[`LearnAPI.predict_output_scitype`](@ref)`(algorithm)`|`Any`| upper bound on `scitype(first(predict(algorithm, ...)))`|`AbstractVector{Continuous}`|
75
-
|[`LearnAPI.predict_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `predict(algorithm, fitted_params, data...)`†† |`AbstractMatrix{<:Real}`|
76
-
|[`LearnAPI.predict_output_type`](@ref)`(algorithm)`|`Any`| upper bound on `typeof(first(predict(algorithm, ...)))`|`AbstractVector{<:Real}`|
77
-
|[`LearnAPI.predict_joint_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `predict_joint(algorithm, fitted_params, data...)`†† |`Table(Continuous)`|
78
-
|[`LearnAPI.predict_joint_output_scitype`](@ref)`(algorithm)`|`Any`| upper bound on `scitype(first(predict_joint(algorithm, ...)))`|`Sampleable{<:AbstractVector{Continuous}}`|
79
-
|[`LearnAPI.predict_joint_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `predict_joint(algorithm, fitted_params, data...)`†† |`AbstractMatrix{<:Real}`|
80
-
|[`LearnAPI.predict_joint_output_type`](@ref)`(algorithm)`|`Any`| upper bound on `typeof(first(predict_joint(algorithm, ...)))`|`Distributions.Sampleable{Distributions.Multivariate,Distributions.Continuous}`|
81
-
|[`LearnAPI.transform_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `transform(algorithm, fitted_params, data...)`†† |`Table(Continuous)`|
83
+
|[`LearnAPI.predict_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `predict(algorithm, fitted_params, data...)`² |`Table(Continuous)`|
84
+
|[`LearnAPI.predict_output_scitype`](@ref)`(algorithm, kind_of_proxy)`|`Any`| upper bound on `scitype(first(predict(algorithm, kind_of_proxy, ...)))`|`AbstractVector{Continuous}`|
85
+
|[`LearnAPI.predict_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `predict(algorithm, fitted_params, data...)`² |`AbstractMatrix{<:Real}`|
86
+
|[`LearnAPI.predict_output_type`](@ref)`(algorithm, kind_of_proxy)`|`Any`| upper bound on `typeof(first(predict(algorithm, kind_of_proxy, ...)))`|`AbstractVector{<:Real}`|
87
+
|[`LearnAPI.transform_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `transform(algorithm, fitted_params, data...)`² |`Table(Continuous)`|
82
88
|[`LearnAPI.transform_output_scitype`](@ref)`(algorithm)`|`Any`| upper bound on `scitype(first(transform(algorithm, ...)))`|`Table(Continuous)`|
83
-
|[`LearnAPI.transform_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `transform(algorithm, fitted_params, data...)`††|`AbstractMatrix{<:Real}}`|
89
+
|[`LearnAPI.transform_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `transform(algorithm, fitted_params, data...)`²|`AbstractMatrix{<:Real}}`|
84
90
|[`LearnAPI.transform_output_type`](@ref)`(algorithm)`|`Any`| upper bound on `typeof(first(transform(algorithm, ...)))`|`AbstractMatrix{<:Real}`|
85
-
|[`LearnAPI.inverse_transform_input_scitype`](@ref)`(algorithm)`|`Union{}`| upper bound on `scitype(data)` in `inverse_transform(algorithm, fitted_params, data...)`†† |`Table(Continuous)`|
86
-
|[`LearnAPI.inverse_transform_output_scitype`](@ref)`(algorithm)`|`Any`| upper bound on `scitype(first(inverse_transform(algorithm, ...)))`|`Table(Continuous)`|
87
-
|[`LearnAPI.inverse_transform_input_type`](@ref)`(algorithm)`|`Union{}`| upper bound on `typeof(data)` in `inverse_transform(algorithm, fitted_params, data...)`†† |`AbstractMatrix{<:Real}`|
88
-
|[`LearnAPI.inverse_transform_output_type`](@ref)`(algorithm)`|`Any`| upper bound on `typeof(first(inverse_transform(algorithm, ...)))`|`AbstractMatrix{<:Real}`|
89
-
90
91
91
-
† If the value is `0`, then the variable in boldface type is not supported and not
92
+
¹ If the value is `0`, then the variable in boldface type is not supported and not
92
93
expected to appear in `data`. If `length(data)` is less than the trait value, then `data`
93
94
is understood to exclude the variable, but note that `fit` can have multiple signatures of
94
95
varying lengths, as in `fit(algorithm, verbosity, X, y)` and `fit(algorithm, verbosity, X, y,
95
96
w)`. A non-zero value is a promise that `fit` includes a signature of sufficient length to
96
97
include the variable.
97
98
98
-
†† Assuming no [optional data interface](@ref data_interface) is implemented. See docstring
99
+
² Assuming no [optional data interface](@ref data_interface) is implemented. See docstring
99
100
for the general case.
100
101
101
102
102
103
## Derived Traits
103
104
104
105
The following convenience methods are provided but intended for overloading:
|`LearnAPI.name(algorithm)`| algorithm type name as string | "PCA" |
110
+
|`LearnAPI.is_algorithm(algorithm)`|`true` if `functions(algorithm)` is not empty |`true`|
111
+
|[`LearnAPI.predict_output_scitype`](@ref)(algorithm) | dictionary of upper bounds on the scitype of predictions, keyed on subtypes of [`LearnAPI.KindOfProxy`](@ref)|
112
+
|[`LearnAPI.predict_output_type`](@ref)(algorithm) | dictionary of upper bounds on the type of predictions, keyed on subtypes of [`LearnAPI.KindOfProxy`](@ref)|
0 commit comments