@@ -12,7 +12,7 @@ The LearnAPI.jl specification is predicated on a few basic, informally defined n
1212
1313### Data and observations
1414
15- ML/statistical algorithms are typically applied in conjunction with resampling of
15+ ML/statistical algorithms are frequently applied in conjunction with resampling of
1616* observations* , as in
1717[ cross-validation] ( https://en.wikipedia.org/wiki/Cross-validation_(statistics) ) . In this
1818document * 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.
3535
3636Besides the data it consumes, a machine learning algorithm's behavior is governed by a
3737number 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 ` .
4146
4247
4348### [ Targets and target proxies] (@id proxy)
@@ -56,16 +61,16 @@ compared with censored ground truth survival times. And so on ...
5661
5762#### Definitions
5863
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").
6570
6671LearnAPI.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/ ) .
6974
7075
7176### [ Learners] (@id learners)
@@ -149,9 +154,7 @@ interface.)
149154 [`LearnAPI.learner`](@ref), [`LearnAPI.constructor`](@ref) and
150155 [`LearnAPI.functions`](@ref).
151156
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 ) .
155158
156159### List of methods
157160
@@ -187,7 +190,7 @@ minimal (but useless) implementation, see the implementation of `SmallLearner`
187190- [ Accessor functions] (@ref accessor_functions): these include functions like
188191 ` LearnAPI.feature_importances ` and ` LearnAPI.training_losses ` , for extracting, from
189192 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
191194 serializable version that can still ` predict ` or ` transform ` .
192195
193196- [ Learner traits] (@ref traits): methods that promise specific learner behavior or
0 commit comments