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
each promising a specific kind of behaviour, such as "The predictions of this model are
34
+
each promising a specific kind of behavior, such as "The predictions of this model are
35
35
probability distributions". There is no abstract type model hierarchy.
36
36
37
37
Our preceding remarks notwithstanding, there is, for certain applications involving a
@@ -48,12 +48,12 @@ not supervised, can generalize to new data observations, or not generalize.
48
48
## Methods
49
49
50
50
In LearnAPI.jl a *model* is just a container for the hyper-parameters of some machine
51
-
learning algorithm, and that's all. It does not include learned parameters.
51
+
learning algorithm, and does not typically include learned parameters.
52
52
53
53
The following methods, dispatched on model type, are provided:
54
54
55
55
-`fit`, for regular training, overloaded if the model generalizes to new data, as in
56
-
classical supervised learning
56
+
classical supervised learning; the principal output of `fit` is the learned parameters
57
57
58
58
-`update!`, for adding model iterations, or responding efficiently to other
59
59
post-`fit`changes in hyperparameters
@@ -66,11 +66,11 @@ The following methods, dispatched on model type, are provided:
66
66
- common **accessor functions**, such as `feature_importances` and `training_losses`, for
67
67
extracting, from training outcomes, information common to some models
68
68
69
-
-**model traits**, such as `target_proxies(model)`, for promising specific behaviour
69
+
-**model traits**, such as `predict_output_type(model)`, for promising specific behavior
70
70
71
-
There is flexibility about how much of the interface is implemented by a given model
72
-
object `model`. A special trait `functions(model)` declares what has been explicitly
73
-
implemented to work with `model`, excluding traits.
71
+
There is flexibility about how much of the interface is implemented by a given model type.
72
+
A special trait `functions(model)` declares what has been explicitly implemented to work
73
+
with `model`, excluding traits.
74
74
75
75
Since this is a functional-style interface, `fit` returns model `state`, in addition to
76
76
learned parameters, for passing to the optional `update!` and `ingest!` methods. These
@@ -89,10 +89,10 @@ formalize:
89
89
- An object which generates ordered sequences of individual **observations** is called
90
90
**data**. For example a `DataFrame` instance, from
91
91
[DataFrames.jl](https://dataframes.juliadata.org/stable/), is considered data, the
92
-
observatons being the rows. A matrix can be considered data, but whether the
92
+
observations being the rows. A matrix can be considered data, but whether the
93
93
observations are rows or columns is ambiguous and not fixed by LearnAPI.
94
94
95
-
- Each machine learning model's behaviour is governed by a number of user-specified
95
+
- Each machine learning model's behavior is governed by a number of user-specified
96
96
**hyperparameters**. The regularization parameter in ridge regression is an
97
97
example. Hyperparameters are data-independent. For example, the number of target classes
98
98
is not a hyperparameter.
@@ -119,21 +119,20 @@ for the general user - such as a table (dataframe) or the path to a directory co
119
119
image files - and a performant, model-specific representation of that data, such as a
120
120
matrix or image "data loader". When retraining using the same data with new
121
121
hyper-parameters, one wants to avoid recreating the model-specific representation, and,
122
-
accordingly, a higher level ML interface may want to cache model-specific
122
+
accordingly, a higher level ML interface may want to cache such
123
123
representations. Furthermore, in resampling (e.g., performing cross-validation), a higher
124
124
level interface wants only to resample the model-specific representation, so it needs to
125
125
know how to do that. To meet these two ends, LearnAPI provides two additional **data
126
126
methods** dispatched on model type:
127
127
128
-
-`reformat(model, ...)`, for converting from a user data representation to a peformant model-specific
129
-
representation
128
+
-`reformat(model, ...)`, for converting from a user data representation to a performant model-specific representation, whose output is for use in `fit`, `predict`, etc. above
130
129
131
130
-`getobs(model, ...)`, for extracting a subsample of observations of the model-specific
132
131
representation
133
132
134
133
It should be emphasized that LearnAPI is itself agnostic to particular representations of
135
-
data or the particular methods of accessing observations within them. Each `model` is free
136
-
to choose its own data interface.
134
+
data or the particular methods of accessing observations within them. By overloading these
135
+
methods, Each `model` is free to choose its own data interface.
137
136
138
137
See [Optional data Interface](@ref data_interface) for more details.
139
138
@@ -158,6 +157,6 @@ interface is the [Reference](@ref reference) section.
158
157
159
158
**Note.** In the future, LearnAPI.jl may become the new foundation for the
160
159
[MLJ](https://alan-turing-institute.github.io/MLJ.jl/dev/) toolbox created by the same
161
-
developers. However, LearnAPI.jl is meant as a general purpose, standalone, lightweight,
160
+
developers. However, LearnAPI.jl is meant as a general purpose, stand-alone, lightweight,
162
161
low level API for machine learning algorithms (and has no reference to the "machines" used
0 commit comments