Version 1.0.0

In Development

Legend for changelogs

  • Major Feature : something big that you couldn’t do before.

  • Feature : something that you couldn’t do before.

  • Efficiency : an existing feature now may not require as much computation or memory.

  • Enhancement : a miscellaneous minor improvement.

  • Fix : something that previously didn’t work as documentated – or according to reasonable expectations – should now work.

  • API Change : you will need to change your code to have the same effect in the future; or a feature will be removed in the future.

Minimal dependencies

Version 1.0.0 of scikit-learn requires python 3.7+, numpy 1.14.6+ and scipy 1.1.0+. Optional minimal dependency is matplotlib 2.2.2+.

Enforcing keyword-only arguments

In an effort to promote clear and non-ambiguous use of the library, most constructor and function parameters must now be passed as keyword arguments (i.e. using the param=value syntax) instead of positional. If a keyword-only parameter is used as positional, a TypeError is now raised. #15005 #20002 by Joel Nothman, Adrin Jalali, Thomas Fan, Nicolas Hug, and Tom Dupre la Tour. See SLEP009 for more details.

Put the changes in their relevant module.

Changed models

The following estimators and functions, when fit with the same data and parameters, may produce different models from the previous version. This often occurs due to changes in the modelling logic (bug fixes or enhancements), or in random sampling procedures.

Details are listed in the changelog below.

(While we are trying to better inform users by providing this information, we cannot assure that this list is complete.)








  • API Change In decomposition.DictionaryLearning, decomposition.MiniBatchDictionaryLearning, dict_learning and dict_learning_online, transform_alpha will be equal to alpha instead of 1.0 by default starting from version 1.2 #19159 by Benoît Malézieux.

  • Fix Fixes incorrect multiple data-conversion warnings when clustering boolean data. #19046 by Surya Prakash.

  • Fix Fixed dict_learning, used by DictionaryLearning, to ensure determinism of the output. Achieved by flipping signs of the SVD output which is used to initialize the code. #18433 by Bruno Charron.

  • Enhancement added a new approximate solver (randomized SVD, available with eigen_solver='randomized') to decomposition.KernelPCA. This significantly accelerates computation when the number of samples is much larger than the desired number of components. #12069 by Sylvain Marié.

  • Fix Fixed a bug in MiniBatchDictionaryLearning, MiniBatchSparsePCA and dict_learning_online where the update of the dictionary was incorrect. #19198 by Jérémie du Boisberranger.

  • Fix Fixed a bug in DictionaryLearning, SparsePCA, MiniBatchDictionaryLearning, MiniBatchSparsePCA, dict_learning and dict_learning_online where the restart of unused atoms during the dictionary update was not working as expected. #19198 by Jérémie du Boisberranger.



  • Fix Fixed a bug in class:feature_extraction.HashingVectorizer where some input strings would result in negative indices in the transformed data. #19035 by Liu Yu.





  • Fix Change numerical precision to prevent underflow issues during affinity matrix computation for manifold.TSNE. #19472 by Dmitry Kobak.

  • Enhancement Implement 'auto' heuristic for the learning_rate in manifold.TSNE. It will become default in 1.2. The default initialization will change to pca in 1.2. PCA initialization will be scaled to have standard deviation 1e-4 in 1.2. #19491 by Dmitry Kobak.







  • API Change The predict_proba and predict_log_proba methods of the Pipeline class now support passing prediction kwargs to the final estimator. #19790 by Christopher Flynn.





Code and Documentation Contributors

Thanks to everyone who has contributed to the maintenance and improvement of the project since version 0.24, including:

TODO: update at the time of the release.