@@ -12,7 +12,7 @@ The LearnAPI.jl specification is predicated on a few basic, informally defined n
12
12
13
13
### Data and observations
14
14
15
- ML/statistical algorithms are typically applied in conjunction with resampling of
15
+ ML/statistical algorithms are frequently applied in conjunction with resampling of
16
16
* observations* , as in
17
17
[ cross-validation] ( https://en.wikipedia.org/wiki/Cross-validation_(statistics) ) . In this
18
18
document * data* will always refer to objects encapsulating an ordered sequence of
@@ -35,9 +35,14 @@ see [`obs`](@ref) and [`LearnAPI.data_interface`](@ref) for details.
35
35
36
36
Besides the data it consumes, a machine learning algorithm's behavior is governed by a
37
37
number of user-specified * hyperparameters* , such as the number of trees in a random
38
- forest. In LearnAPI.jl, one is allowed to have hyperparameters that are not data-generic.
39
- For example, a class weight dictionary, which will only make sense for a target taking
40
- values in the set of dictionary keys, can be specified as a hyperparameter.
38
+ forest. Hyperparameters are understood in a rather broad sense. For example, one is
39
+ allowed to have hyperparameters that are not data-generic. For example, a class weight
40
+ dictionary, which will only make sense for a target taking values in the set of specified
41
+ dictionary keys, should be given as a hyperparameter. For simplicity, LearnAPI.jl
42
+ discourages "run time" parameters (extra arguments to ` fit ` ) such as acceleration
43
+ options (cpu/gpu/multithreading/multiprocessing). These should be included as
44
+ hyperparameters as far as possible. An exception is the compulsory ` verbosity ` keyword
45
+ argument of ` fit ` .
41
46
42
47
43
48
### [ Targets and target proxies] (@id proxy)
@@ -56,16 +61,16 @@ compared with censored ground truth survival times. And so on ...
56
61
57
62
#### Definitions
58
63
59
- More generally, whenever we have a variable (e.g., a class label) that can, at least in
60
- principle, be paired with a predicted value, or some predicted "proxy" for that variable
61
- (such as a class probability), then we call the variable a * target* variable, and the
62
- predicted output a * target proxy* . In this definition, it is immaterial whether or not the
63
- target appears in training (the algorithm is supervised) or whether or not predictions
64
- generalize to new input observations (the algorithm "learns").
64
+ More generally, whenever we have a variable that can, at least in principle, be paired
65
+ with a predicted value, or some predicted "proxy" for that variable (such as a class
66
+ probability), then we call the variable a * target* variable, and the predicted output a
67
+ * target proxy* . In this definition, it is immaterial whether or not the target appears in
68
+ training (the algorithm is supervised) or whether or not predictions generalize to new
69
+ input observations (the algorithm "learns").
65
70
66
71
LearnAPI.jl provides singleton [ target proxy types] (@ref proxy_types) for prediction
67
- dispatch. These are also used to distinguish performance metrics provided by the package
68
- [ StatisticalMeasures.jl] ( https://juliaai.github.io/StatisticalMeasures.jl/dev/ ) .
72
+ dispatch. These are the same types used to distinguish performance metrics provided by the
73
+ package [ StatisticalMeasures.jl] ( https://juliaai.github.io/StatisticalMeasures.jl/dev/ ) .
69
74
70
75
71
76
### [ Learners] (@id learners)
@@ -149,9 +154,7 @@ interface.)
149
154
[`LearnAPI.learner`](@ref), [`LearnAPI.constructor`](@ref) and
150
155
[`LearnAPI.functions`](@ref).
151
156
152
- Most learners will also implement [ ` predict ` ] ( @ref ) and/or [ ` transform ` ] ( @ref ) . For a
153
- minimal (but useless) implementation, see the implementation of ` SmallLearner `
154
- [ here] ( https://github.com/JuliaAI/LearnAPI.jl/blob/dev/test/traits.jl ) .
157
+ Most learners will also implement [ ` predict ` ] ( @ref ) and/or [ ` transform ` ] ( @ref ) .
155
158
156
159
### List of methods
157
160
@@ -187,7 +190,7 @@ minimal (but useless) implementation, see the implementation of `SmallLearner`
187
190
- [ Accessor functions] (@ref accessor_functions): these include functions like
188
191
` LearnAPI.feature_importances ` and ` LearnAPI.training_losses ` , for extracting, from
189
192
training outcomes, information common to many learners. This includes
190
- [ ` LearnAPI.strip(model) ` ] ( @ref ) for replacing a learning outcome ` model ` with a
193
+ [ ` LearnAPI.strip(model) ` ] ( @ref ) for replacing a learning outcome, ` model ` , with a
191
194
serializable version that can still ` predict ` or ` transform ` .
192
195
193
196
- [ Learner traits] (@ref traits): methods that promise specific learner behavior or
0 commit comments