Home of the MLJ Model Registry and tools for model search and model code loading.
For instructions on integrating a new model into MLJ visit here.
Newcomers to MLJ should refer to this page for usage and installation instructions. MLJModels.jl is a dependency of MLJ that the general user can ignore.
This repository is for developers maintaining:
-
The MLJ Model Registry, a database of packages implementing the MLJ interface for machine learning models, together with metadata about those models.
-
MLJ tools for searching the database (
models(...)
andmatching(...)
) and for loading model code (@load
,@iload
).
The model registry lives at "/src/registry" but is maintained using MLJModelRegistryTools.jl.
New MLJ model interfaces can be implemented either:
-
natively in a package providing the core machine learning algorithm, as in
EvoTrees.jl
; or -
in a separate interface package, such as MLJDecisionTreeInterface.jl.
In either case, the package providing the implementation needs to be added to the MLJ Model Registry to make it discoverable by MLJ users, and to make the model metadata searchable. To register a package, prepare a pull request to MLJModels.jl by following these instructions.
Currently, after registering the model, one must also make a PR to MLJ updating this dictionary of model descriptors to ensure the new models appear in the right places in MLJ's Model Browser
To list all model interfaces currently registered, do using MLJ
or using MLJModels
and run models()
to list all registered models.
Recall that an interface is loaded from within MLJ, together with the
package providing the underlying algorithm, using the syntax @load RidgeRegressor pkg=GLM
, where the pkg
keyword is only necessary in
ambiguous cases.
The actual MLJ Model Registry consists of the TOML files in this
directory. A few models available for immediate use in MLJ (without
loading model code using @load
) are also provided by this package, under "/src/builtins"
but these may be moved out in the future.
Older versions of MLJModels.jl contained some of the models now residing at MLJTransforms.jl. Even older versions provided implementations of all the non-native implementations of the MLJ interface.