ScikitLearn.jl implements the popular scikit-learn interface and algorithms in Julia. It supports both models from the Julia ecosystem and those of the scikit-learn library (via PyCall.jl).
Would you rather use a machine-learning framework specially-designed for Julia? Check out MLJ.jl, from the Alan Turing institute.
Disclaimer: ScikitLearn.jl borrows code and documentation from scikit-learn, but it is not an official part of that project. It is licensed under BSD-3.
Main features:
- Around 150 Julia and Python models accessed through a uniform interface
- Pipelines and FeatureUnions
- Cross-validation
- Hyperparameter tuning
- DataFrames support
Check out the Quick-Start Guide for a tour.
To install ScikitLearn.jl, type ]add ScikitLearn
at the REPL.
To import Python models (optional), ScikitLearn.jl requires the scikit-learn Python library, which will be installed automatically when needed. Most of the examples use PyPlot.jl
On Linux builds, importing python models via @sk_import
is known to fail for Julia v<0.8.4 when the PYTHON
enviroment variable from PyCall.jl
is set to ""
or conda
. This is becuase the version libstdcxx loaded by Julia v<0.8.4 isn't compatible with the version of scikit-learn installed via Conda.
The easiest and recommended way to resolve this is to upgrade to Julia v>=1.8.4. If you must stick with your current julia version you can also resolve this issue by pre-appending your system's LD_LIBRARY_PATH
enviroment variable as shown below
ROOT_ENV=`julia -e "using Conda; print(Conda.ROOTENV)`
export LD_LIBRARY_PATH=$ROOT_ENV"/lib":$LD_LIBRARY_PATH
See the manual and example gallery.
ScikitLearn.jl aims for feature parity with scikit-learn. If you encounter any problem that is solved by that library but not this one, file an issue.