A pure Julia machine learning framework.
Call for help. MLJ needs your help to ensure its success. This depends crucially on:
Existing and developing ML algorithms implementing the MLJ model interface
Improvements to existing but poorly maintained Julia ML algorithms
MLJ is presently supported by a small Alan Turing Institute grant and is looking for new funding sources to grow and maintain the project.
MLJ aims to be a flexible framework for combining and tuning machine learning models, written in the high performance, rapid development, scientific programming language, Julia.
The MLJ project is partly inspired by MLR.
At the julia REPL prompt
using Pkg Pkg.add("MLJ") Pkg.add("MLJModels")
To obtain a list of all registered models:
using MLJ models()
To add a package - for example, DecisionTree - to your load path:
using Pkg Pkg.add("DecisionTree")
To load all code needed to use a model - for example, DecisionTreeClassifier,
which also returns a default instance. Refer to the documentation for more on instantiating and running loaded models.
Package conflicts. If you encounter package conflicts during installation, and are not familiar with the Julia package manager, then you can try installation in a fresh environment by first entering these commmands:
using Pkg Pkg.activate("my_mlj_env", shared=true)
In future REPL sessions, you can activate your (now populuted) environment with the same command.
A docker image with installation instructions is also available.
Automated tuning of hyperparameters, including composite models with nested parameters. Tuning implemented as a wrapper, allowing composition with other meta-algorithms. ✔
Option to tune hyperparameters using gradient descent and automatic differentiation (for learning algorithms written in Julia).
Option to tune hyperaparameters using Bayesian optimisation
Data agnostic: Train models on any data supported by the Tables.jl interface. ✔
Intuitive syntax for building arbitrarily complicated learning networks .✔
Learning networks can be exported as self-contained composite models ✔, but common networks (e.g., linear pipelines ✔, stacks) come ready to plug-and-play.
Performant parallel implementation of large homogeneous ensembles of arbitrary models (e.g., random forests). ✔
Model registry and facility to match models to machine learning tasks. ✔
Benchmarking a battery of assorted models for a given task.
Automated estimates of cpu and memory requirements for given task/model.
Friendly interface for handling probabilistic prediction. ✔
Antecedents for the current package are AnalyticalEngine.jl, Orchestra.jl, and Koala.jl. Development was also guided by a research study group at the University of Warwick, beginning with a review of existing ML Modules that were available in Julia at the time (in-depth, overview).
Further work culminated in the first MLJ proof-of-concept
For administrators: Implementing requests to register new models.
1 day ago