New to MLJ? Start here.
Wanting to integrate an existing machine learning model into the MLJ framework? Start here.
The remaining information on this page will be of interest primarily to developers interested in contributing to core packages in the MLJ ecosystem, whose organization is described further below.
MLJ (Machine Learning in Julia) is a toolbox written in Julia providing a common interface and meta-algorithms for selecting, tuning, evaluating, composing and comparing machine over 150 machine learning models written in Julia and other languages. MLJ is released under the MIT licensed and sponsored by the Alan Turing Institute.
MLJ Universe • Known Issues • Customizing Behavior • Citing MLJ
The functionality of MLJ is distributed over a number of repositories illustrated in the dependency chart below.
Contributing •
Code Organization •
Road Map
MLJ •
MLJBase •
MLJModelInterface •
MLJModels •
MLJTuning •
MLJLinearModels •
MLJFlux
MLJTutorials •
MLJScientificTypes •
ScientificTypes
Dependency chart for MLJ repositories. Repositories with dashed connections do not currently exist but are planned/proposed.
For users of Mac OS using Julia 1.3 or higher, using ScikitLearn models can lead to unexpected MKL errors due to an issue not related to MLJ. See this Julia Discourse discussion and this issue for context.
A temporary workaround for this issue is to force the installation of
an older version of the OpenSpecFun_jll
library. To install an
appropriate version, activate your MLJ environment and run
using Pkg;
Pkg.develop(PackageSpec(url="https://github.com/tlienart/OpenSpecFun_jll.jl"))
See
here. Workaround:
Instead of XGBoost
models (the chief known case) use models from the
pure Julia package EvoTrees
.
To customize behaviour of MLJ you will need to clone the relevant component package (e.g., MLJBase.jl) - or a fork thereof - and modify your local julia environment to use your local clone in place of the official release. For example, you might proceed something like this:
using Pkg
Pkg.activate("my_MLJ_enf", shared=true)
Pkg.develop("path/to/my/local/MLJBase")
To test your local clone, do
Pkg.test("MLJBase")
For more on package management, see https://julialang.github.io/Pkg.jl/v1/ .
@misc{blaom2020mlj,
title={MLJ: A Julia package for composable machine learning},
author={Anthony D. Blaom and Franz Kiraly and Thibaut Lienart and Yiannis Simillides and Diego Arenas and Sebastian J. Vollmer},
year={2020},
eprint={2007.12285},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Core design: A. Blaom, F. Kiraly, S. Vollmer
Active maintainers: A. Blaom, T. Lienart, S. Okon
Active collaborators: D. Arenas, D. Buchaca, J. Hoffimann, S. Okon, J. Samaroo, S. Vollmer
Past collaborators: D. Aluthge, E. Barp, G. Bohner, M. K. Borregaard, V. Churavy, H. Devereux, M. Giordano, M. Innes, F. Kiraly, M. Nook, Z. Nugent, P. Oleśkiewicz, A. Shridar, Y. Simillides, A. Sengupta, A. Stechemesser.
MLJ is supported by the Alan Turing Institute and released under the MIT "Expat" License.