List of Supported Models
MLJ provides access to a wide variety of machine learning models. We are always looking for help adding new models or testing existing ones. Currently available models are listed below; for the most up-to-date list, run using MLJ; models()
.
Indications of "maturity" in the table below are approximate, surjective, and possibly out-of-date. A decision to use or not use a model in a critical application should be based on a user's independent assessment.
- experimental: indicates the package is fairly new and/or is under active development; you can help by testing these packages and making them more robust,
- low: indicate a package that has reached a roughly stable form in terms of interface and which is unlikely to contain serious bugs. It may be missing some functionality found in similar packages. It has not benefited from a high level of use
- medium: indicates the package is fairly mature but may benefit from optimizations and/or extra features; you can help by suggesting either,
- high: indicates the package is very mature and functionalities are expected to have been fairly optimiser and tested.
Package | Interface Pkg | Models | Maturity | Note |
---|---|---|---|---|
BetaML.jl | - | DecisionTreeClassifier, RandomForestClassifier, NeuralNetworkClassifier, LinearPerceptron, KernelPerceptron, Pegasos, DecisionTreeRegressor, RandomForestRegressor, NeuralNetworkRegressor, MultitargetNeuralNetworkRegressor, GaussianMixtureRegressor, MultitargetGaussianMixtureRegressor, KMeans, KMedoids, GaussianMixtureClusterer, SimpleImputer, GaussianMixtureImputer, RandomForestImputer, GeneralImputer | medium | |
Clustering.jl | MLJClusteringInterface.jl | KMeans, KMedoids | high | † |
DecisionTree.jl | MLJDecisionTreeInterface.jl | DecisionTreeClassifier, DecisionTreeRegressor, AdaBoostStumpClassifier, RandomForestClassifier, RandomForestRegressor | high | |
EvoTrees.jl | - | EvoTreeRegressor, EvoTreeClassifier, EvoTreeCount, EvoTreeGaussian, EvoTreeMLE | medium | tree-based gradient boosting models |
EvoLinear.jl | - | EvoLinearRegressor | medium | linear boosting models |
GLM.jl | MLJGLMInterface.jl | LinearRegressor, LinearBinaryClassifier, LinearCountRegressor | medium | † |
LIBSVM.jl | MLJLIBSVMInterface.jl | LinearSVC, SVC, NuSVC, NuSVR, EpsilonSVR, OneClassSVM | high | also via ScikitLearn.jl |
LightGBM.jl | - | LGBMClassifier, LGBMRegressor | high | |
Flux.jl | MLJFlux.jl | NeuralNetworkRegressor, NeuralNetworkClassifier, MultitargetNeuralNetworkRegressor, ImageClassifier | low | |
MLJLinearModels.jl | - | LinearRegressor, RidgeRegressor, LassoRegressor, ElasticNetRegressor, QuantileRegressor, HuberRegressor, RobustRegressor, LADRegressor, LogisticClassifier, MultinomialClassifier | medium | |
MLJModels.jl (built-in) | - | ConstantClassifier, ConstantRegressor, ContinuousEncoder, DeterministicConstantClassifier, DeterministicConstantRegressor, FeatureSelector, FillImputer, InteractionTransformer, OneHotEncoder, Standardizer, UnivariateBoxCoxTransformer, UnivariateDiscretizer, UnivariateFillImputer, UnivariateTimeTypeToContinuous, Standardizer, BinaryThreshholdPredictor | medium | |
MLJText.jl | - | TfidfTransformer, BM25Transformer, CountTransformer | low | |
MultivariateStats.jl | MLJMultivariateStatsInterface.jl | LinearRegressor, MultitargetLinearRegressor, RidgeRegressor, MultitargetRidgeRegressor, PCA, KernelPCA, ICA, LDA, BayesianLDA, SubspaceLDA, BayesianSubspaceLDA, FactorAnalysis, PPCA | high | |
NaiveBayes.jl | MLJNaiveBayesInterface.jl | GaussianNBClassifier, MultinomialNBClassifier, HybridNBClassifier | low | |
NearestNeighborModels.jl | - | KNNClassifier, KNNRegressor, MultitargetKNNClassifier, MultitargetKNNRegressor | high | |
OneRule.jl | - | OneRuleClassifier | experimental | |
OutlierDetectionNeighbors.jl | - | ABODDetector, COFDetector, DNNDetector, KNNDetector, LOFDetector | medium | |
OutlierDetectionNetworks.jl | - | AEDetector, DSADDetector, ESADDetector | medium | |
OutlierDetectionPython.jl | - | ABODDetector, CBLOFDetector, COFDetector, COPODDetector, HBOSDetector, IForestDetector, KNNDetector, LMDDDetector, LOCIDetector, LODADetector, LOFDetector, MCDDetector, OCSVMDetector, PCADetector, RODDetector, SODDetector, SOSDetector | high | |
ParallelKMeans.jl | - | KMeans | experimental | |
PartialLeastSquaresRegressor.jl | - | PLSRegressor, KPLSRegressor | experimental | |
ScikitLearn.jl | MLJScikitLearnInterface.jl | ARDRegressor, AdaBoostClassifier, AdaBoostRegressor, AffinityPropagation, AgglomerativeClustering, BaggingClassifier, BaggingRegressor, BayesianLDA, BayesianQDA, BayesianRidgeRegressor, BernoulliNBClassifier, Birch, ComplementNBClassifier, DBSCAN, DummyClassifier, DummyRegressor, ElasticNetCVRegressor, ElasticNetRegressor, ExtraTreesClassifier, ExtraTreesRegressor, FeatureAgglomeration, GaussianNBClassifier, GaussianProcessClassifier, GaussianProcessRegressor, GradientBoostingClassifier, GradientBoostingRegressor, HuberRegressor, KMeans, KNeighborsClassifier, KNeighborsRegressor, LarsCVRegressor, LarsRegressor, LassoCVRegressor, LassoLarsCVRegressor, LassoLarsICRegressor, LassoLarsRegressor, LassoRegressor, LinearRegressor, LogisticCVClassifier, LogisticClassifier, MeanShift, MiniBatchKMeans, MultiTaskElasticNetCVRegressor, MultiTaskElasticNetRegressor, MultiTaskLassoCVRegressor, MultiTaskLassoRegressor, MultinomialNBClassifier, OPTICS, OrthogonalMatchingPursuitCVRegressor, OrthogonalMatchingPursuitRegressor, PassiveAggressiveClassifier, PassiveAggressiveRegressor, PerceptronClassifier, ProbabilisticSGDClassifier, RANSACRegressor, RandomForestClassifier, RandomForestRegressor, RidgeCVClassifier, RidgeCVRegressor, RidgeClassifier, RidgeRegressor, SGDClassifier, SGDRegressor, SVMClassifier, SVMLClassifier, SVMLRegressor, SVMNuClassifier, SVMNuRegressor, SVMRegressor, SpectralClustering, TheilSenRegressor | high | † |
TSVD.jl | MLJTSVDInterface.jl | TSVDTransformer | high | |
XGBoost.jl | MLJXGBoostInterface.jl | XGBoostRegressor, XGBoostClassifier, XGBoostCount | high |
Note (†): Some models are missing and assistance is welcome to complete the interface. Post a message on the Julia #mlj Slack channel if you would like to help, thanks!