auto-sklearn is an automated machine learning toolkit and a drop-in replacement for a scikit-learn estimator:

>>> import autosklearn.classification
>>> cls = autosklearn.classification.AutoSklearnClassifier()
>>>, y_train)
>>> predictions = cls.predict(X_test)

auto-sklearn frees a machine learning user from algorithm selection and hyperparameter tuning. It leverages recent advantages in Bayesian optimization, meta-learning and ensemble construction. Learn more about the technology behind auto-sklearn by reading our paper published at NIPS 2015 .

NEW: Auto-sklearn 2.0

Auto-sklearn 2.0 includes latest research on automatically configuring the AutoML system itself and contains a multitude of improvements which speed up the fitting the AutoML system.

auto-sklearn 2.0 works the same way as regular auto-sklearn and you can use it via

>>> from autosklearn.experimental.askl2 import AutoSklearn2Classifier

A paper describing our advances is available on arXiv.


>>> import autosklearn.classification
>>> import sklearn.model_selection
>>> import sklearn.datasets
>>> import sklearn.metrics
>>> if __name__ == "__main__":
>>>     X, y = sklearn.datasets.load_digits(return_X_y=True)
>>>     X_train, X_test, y_train, y_test = \
            sklearn.model_selection.train_test_split(X, y, random_state=1)
>>>     automl = autosklearn.classification.AutoSklearnClassifier()
>>>, y_train)
>>>     y_hat = automl.predict(X_test)
>>>     print("Accuracy score", sklearn.metrics.accuracy_score(y_test, y_hat))

This will run for one hour and should result in an accuracy above 0.98.



auto-sklearn is licensed the same way as scikit-learn, namely the 3-clause BSD license.

Citing auto-sklearn

If you use auto-sklearn in a scientific publication, we would appreciate a reference to the following paper:

Efficient and Robust Automated Machine Learning, Feurer et al., Advances in Neural Information Processing Systems 28 (NIPS 2015).

Bibtex entry:

   title = {Efficient and Robust Automated Machine Learning},
   author = {Feurer, Matthias and Klein, Aaron and Eggensperger, Katharina and
             Springenberg, Jost and Blum, Manuel and Hutter, Frank},
   booktitle = {Advances in Neural Information Processing Systems 28},
   editor = {C. Cortes and N. D. Lawrence and D. D. Lee and M. Sugiyama and R. Garnett},
   pages = {2962--2970},
   year = {2015},
   publisher = {Curran Associates, Inc.},
   url = {}

If you are using Auto-sklearn 2.0, please also cite

Auto-Sklearn 2.0: The Next Generation, Feurer et al., (arXiv, 2020).

Bibtex entry:

   title = {Auto-Sklearn 2.0},
   author = {Feurer, Matthias and Eggensperger, Katharina and
             Falkner, Stefan and Lindauer, Marius and Hutter, Frank},
   booktitle = {Advances in Neural Information Processing Systems 28},
   year = {2020},
   journal = {arXiv:2007.04074 [cs.LG]},


We appreciate all contribution to auto-sklearn, from bug reports and documentation to new features. If you want to contribute to the code, you can pick an issue from the issue tracker which is marked with Needs contributer.


To avoid spending time on duplicate work or features that are unlikely to get merged, it is highly advised that you contact the developers by opening a github issue before starting to work.

When developing new features, please create a new branch from the development branch. When to submitting a pull request, make sure that all tests are still passing.