Julia implementation of the scikit-learn API
520 Stars
Updated Last
1 Year Ago
Started In
February 2016

# Classifier Comparison (Julia classifiers) # Comparing different clustering algorithms on toy datasets # Density Estimation for a mixture of Gaussians (using GaussianMixtures.jl) # Outlier detection with several methods # A demo of K-Means clustering on the handwritten digits data # Restricted Boltzmann Machine features for digit classification # Simple 1D Kernel Density Estimation # Sample pipeline for text feature extraction and evaluation # Two Class Adaboost # Underfitting vs. Overfitting


Build Status Stable

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:

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

Known issue

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)`


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.