版本0.22#

有关该版本主要亮点的简短描述,请参阅 sphx_glr_auto_examples_release_highlights_plot_release_highlights_0_22_0.py .

换象传说

  • Major Feature 一些你以前做不到的大事。

  • Feature 一些你以前做不到的事情。

  • Efficiency 现有功能现在可能不需要那么多的计算或内存。

  • Enhancement 一个杂七杂八的小改进。

  • Fix 以前没有按照记录或合理预期发挥作用的事情现在应该起作用了。

  • API Change 您需要更改您的代码才能在将来产生相同的效果;或者将来将删除某个功能。

版本0.22.2.post1#

March 3 2020

0.22.2.post1版本包括源发行版的打包修复,但包的内容在其他方面与0.22.2版本中的轮子内容相同(没有.post1后缀)。两者都包含以下更改。

Changelog#

sklearn.impute#

sklearn.metrics#

sklearn.neighbors#

版本0.22.1#

January 2 2020

这是一个错误修复版本,主要解决0.22.0版中的一些打包问题。它还包括小的文档改进和一些错误修复。

Changelog#

sklearn.cluster#

sklearn.inspection#

sklearn.metrics#

sklearn.model_selection#

sklearn.naive_bayes#

  • Fix 移除 abstractmethod decorator for the method _ check_X ' in  `naive_bayes.BaseNB 这可能会破坏从这个废弃的公共Base类继承的下游项目。 #15996 通过 Brigitta Sipőcz .

sklearn.preprocessing#

sklearn.semi_supervised#

sklearn.utils#

  • Fix utils.check_array 现在可以正确地将带有布尔列的pandas DataFrame转换为浮点数。 #15797 通过 Thomas Fan .

  • Fix utils.validation.check_is_fitted 接受一个明确的 attributes 参数,用于检查特定属性作为匹配估计量的显式标记。当没有明确的 attributes 则只有以强调线结束且不以双强调线开始的属性才被用作“匹配”标记。的 all_or_any 论点也不再被反对。进行此更改是为了恢复与0.21版中此实用程序行为的某些向后兼容性。 #15947 通过 Thomas Fan .

版本0.22.0#

December 3 2019

网站更新#

Our website 进行了改造,焕然一新。 #14849 通过 Thomas Fan .

公共API的清晰定义#

Scikit-learn有一个公共API和一个私有API。

我们尽最大努力不破坏公共API,只引入不需要任何用户操作的向后兼容更改。然而,如果不可能做到这一点,对公共API的任何更改都会受到两个小版本的弃用周期的影响。私有API没有公开文档,也不受任何弃用周期的影响,因此用户不应依赖其稳定性。

如果函数或对象记录在 API Reference 以及是否可以使用导入路径导入,而不需要前置强调线。例如 sklearn.pipeline.make_pipeline 公开,而 sklearn.pipeline._name_estimators is private. sklearn.ensemble._gb.BaseEnsemble is private too because the whole `_ GB '模块是私有的。

在0.22之前,有些工具实际上是公共的(没有突出强调),而它们本来就应该是私有的。在0.22版本中,这些工具已被适当地私有化,并且公共API空间已被清理。此外,现在不建议从大多数子模块导入:例如,您应该使用 from sklearn.cluster import Birch 而不是 from sklearn.cluster.birch import Birch (in练习, birch.py 已经移动到 _birch.py ).

备注

公共API中的所有工具都应记录在 API Reference .如果您发现API引用中没有的公共工具(没有前置强调线),这意味着它应该是私有的或有文档的。请通过打开一期让我们知道!

这项工作被跟踪 issue 9250issue 12927 .

亵渎:使用 FutureWarning 从现在开始#

当反对某个功能时,早期版本的scikit-learn用于引发 DeprecationWarning .以来 DeprecationWarnings Python默认不显示,scikit-learn需要求助于自定义警告过滤器来始终显示警告。该过滤器有时会干扰用户自定义警告过滤器。

从0.22版本开始,scikit-learn将显示 FutureWarnings 对于反对意见, as recommended by the Python documentation . FutureWarnings Python默认情况下总是显示,因此自定义过滤器已被删除,scikit-learn不再阻碍用户过滤器。 #15080 通过 Nicolas Hug .

更改型号#

以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。

详细信息见下面的变更日志。

(虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。

Changelog#

sklearn.base#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.cross_decomposition#

sklearn.datasets#

sklearn.decomposition#

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.gaussian_process#

sklearn.impute#

sklearn.inspection#

sklearn.kernel_approximation#

sklearn.linear_model#

sklearn.manifold#

sklearn.metrics#

sklearn.model_selection#

sklearn.multioutput#

sklearn.naive_bayes#

sklearn.neighbors#

sklearn.neural_network#

sklearn.pipeline#

sklearn.preprocessing#

sklearn.model_selection#

sklearn.svm#

  • Enhancement svm.SVCsvm.NuSVC 现在接受 break_ties 参数.此参数导致 predict 根据信心值打破联系 decision_function ,如果 decision_function_shape='ovr' ,并且目标类数量> 2。 #12557 通过 Adrin Jalali .

  • Enhancement 当出现以下情况时,支持者估计器现在会抛出更具体的误差 kernel='precomputed' 并适合非平方数据。 #14336 通过 Gregory Dexter .

  • Fix svm.SVC , svm.SVR , svm.NuSVRsvm.OneClassSVM 当收到参数的负值或零时 sample_weight 在方法fit()中生成了无效模型。这种行为仅发生在某些边境场景中。现在,在这些情况下,fit()将失败并出现异常。 #14286 通过 Alex Shacked .

  • Fixn_support_ attribute of svm.SVR and svm.OneClassSVM was previously non-initialized, and had size 2. It has now size 1 with the correct value. #15099 by Nicolas Hug .

  • Fix 修复了一个错误 BaseLibSVM._sparse_fit 其中n_SV=0引发了ZeroDivisionError。 #14894 通过 Danna Naser .

  • Fix Liblinear求解器现在支持 sample_weight . #15038 通过 Guillaume Lemaitre .

sklearn.tree#

sklearn.utils#

  • Feature check_estimator 现在可以通过设置 generate_only=True. Previously, running check_estimator will stop when the first check fails. With generate_only=True, all checks can run independently and report the ones that are failing. Read more in 滚动您自己的估计器. #14381 by Thomas Fan .

  • Feature 添加了一个pytest特定的装饰者, parametrize_with_checks ,以参数化估计器检查的估计器列表。 #14381 通过 Thomas Fan .

  • Feature 新的随机变量, utils.fixes.loguniform implements a log-uniform random variable (e.g., for use in RandomizedSearchCV). For example, the outcomes 1, 10 and 100 are all equally likely for loguniform(1, 100). See #11232 by Scott Sievert and Nathaniel Saul, and SciPy PR 10815 .

  • Enhancement utils.safe_indexing (now deprecated) accepts an axis parameter to index array-like across rows and columns. The column indexing can be done on NumPy array, SciPy sparse matrix, and Pandas DataFrame. An additional refactoring was done. #14035 and #14475 by Guillaume Lemaitre .

  • Enhancement utils.extmath.safe_sparse_dot 工作在3D+ ndray和稀疏矩阵之间。 #14538 通过 Jérémie du Boisberranger .

  • Fix utils.check_array 现在正在引发错误,而不是将NaN转换为integer。 #14872 通过 Roman Yurchak .

  • Fix utils.check_array 现在将正确检测pandas收件箱中的数字数据类型,修复了一个错误 float32 感到沮丧 float64 不必要的。 #15094 通过 Andreas Müller .

  • API Change 以下实用程序已被废弃,现在是私有的:

    • choose_check_classifiers_labels

    • enforce_estimator_tags_y

    • mocking.MockDataFrame

    • mocking.CheckingClassifier

    • optimize.newton_cg

    • random.random_choice_csc

    • utils.choose_check_classifiers_labels

    • utils.enforce_estimator_tags_y

    • utils.optimize.newton_cg

    • utils.random.random_choice_csc

    • utils.safe_indexing

    • utils.mocking

    • utils.fast_dict

    • utils.seq_dataset

    • utils.weight_vector

    • utils.fixes.parallel_helper (已删除)

    • 所有 utils.testing 除了 all_estimators 这是现在在 utils .

sklearn.isotonic#

杂项#

  • Fix 端口 lobpcg from SciPy which implement some bug fixes but only available in 1.3+. #13609 and #14971 by Guillaume Lemaitre .

  • API Change Scikit-learn现在将实现鸭子数组的任何输入数据结构转换为numpy数组(使用 __array__ )确保行为一致,而不是依赖 __array_function__ (见 NEP 18 ). #14702 通过 Andreas Müller .

  • API Change 将手动检查替换为 check_is_fitted .使用非匹配估计量时产生的误差现在更加均匀。 #13013 通过 Agamemnon Krasoulis .

估计器检查的更改#

这些变化主要影响库开发人员。

  • 预计估算者将筹集 NotFittedError 如果 predicttransform 被传唤到 fit ;以前 AttributeErrorValueError 可以接受。 #13013 一股是由 Agamemnon Krasoulis .

  • 现在估计器检查中支持仅二进制分类器。此类分类器需要具有 binary_only=True estimator tag. #13875 by Trevor Stephens .

  • 预计估计者将转换输入数据 (X , y , sample_weights )到 numpy.ndarray 从不打电话 __array_function__ 基于传递的原始数据类型(请参阅 NEP 18 ). #14702 通过 Andreas Müller .

  • requires_positive_X 估计器标签(对于要求X为非负的模型)现在由 utils.estimator_checks.check_estimator 以确保如果X包含一些负项,会引发正确的错误消息。 #14680 通过 Alex Gramfort .

  • 添加了成对估计量在非平方数据上引起误差的检查 #14336 通过 Gregory Dexter .

  • 添加了两个常见的多输出估计器测试 utils.estimator_checks.check_classifier_multioutpututils.estimator_checks.check_regressor_multioutput . #13392 通过 Rok Mihevc .

  • Fix 添加 check_transformer_data_not_an_array 检查缺失的地方

  • Fix 估计器标记分辨率现在遵循常规MRO。它们过去只能被重写一次。 #14884 通过 Andreas Müller .

代码和文档贡献者

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

Aaron Alphonsus, Abbie Popa, Abdur-Rahmaan Janhangeer, abenbihi, Abhinav Sagar, Abhishek Jana, Abraham K. Lagat, Adam J. Stewart, Aditya Vyas, Adrin Jalali, Agamemnon Krasoulis, Alec Peters, Alessandro Surace, Alexandre de Siqueira, Alexandre Gramfort, alexgoryainov, Alex Henrie, Alex Itkes, alexshacked, Allen Akinkunle, Anaël Beaugnon, Anders Kaseorg, Andrea Maldonado, Andrea Navarrete, Andreas Mueller, Andreas Schuderer, Andrew Nystrom, Angela Ambroz, Anisha Keshavan, Ankit Jha, Antonio Gutierrez, Anuja Kelkar, Archana Alva, arnaudstiegler, arpanchowdhry, ashimb9, Ayomide Bamidele, Baran Buluttekin, barrycg, Bharat Raghunathan, Bill Mill, Biswadip Mandal, blackd0t, Brian G. Barkley, Brian Wignall, Bryan Yang, c56pony, camilaagw, cartman_nabana, catajara, Cat Chenal, Cathy, cgsavard, Charles Vesteghem, Chiara Marmo, Chris Gregory, Christian Lorentzen, Christos Aridas, Dakota Grusak, Daniel Grady, Daniel Perry, Danna Naser, DatenBergwerk, David Dormagen, deeplook, Dillon Niederhut, Dong-hee Na, Dougal J. Sutherland, DrGFreeman, Dylan Cashman, edvardlindelof, Eric Larson, Eric Ndirangu, Eunseop Jeong, Fanny, federicopisanu, Felix Divo, flaviomorelli, FranciDona, Franco M. Luque, Frank Hoang, Frederic Haase, g0g0gadget, Gabriel Altay, Gabriel do Vale Rios, Gael Varoquaux, ganevgv, gdex1, getgaurav2, Gideon Sonoiya, Gordon Chen, gpapadok, Greg Mogavero, Grzegorz Szpak, Guillaume Lemaitre, Guillem García Subies, H4dr1en, hadshirt, Hailey Nguyen, Hanmin Qin, Hannah Bruce Macdonald, Harsh Mahajan, Harsh Soni, Honglu Zhang, Hossein Pourbozorg, Ian Sanders, Ingrid Spielman, J-A16, jaehong park, Jaime Ferrando Huertas, James Hill, James Myatt, Jay, jeremiedbb, Jérémie du Boisberranger, jeromedockes, Jesper Dramsch, Joan Massich, Joanna Zhang, Joel Nothman, Johann Faouzi, Jonathan Rahn, Jon Cusick, Jose Ortiz, Kanika Sabharwal, Katarina Slama, kellycarmody, Kennedy Kang'ethe, Kensuke Arai, Kesshi Jordan, Kevad, Kevin Loftis, Kevin Winata, Kevin Yu-Sheng Li, Kirill Dolmatov, Kirthi Shankar Sivamani, krishna katyal, Lakshmi Krishnan, Lakshya KD, LalliAcqua, lbfin, Leland McInnes, Léonard Binet, Loic Esteve, loopyme, lostcoaster, Louis Huynh, lrjball, Luca Ionescu, Lutz Roeder, MaggieChege, Maithreyi Venkatesh, Maltimore, Maocx, Marc Torrellas, Marie Douriez, Markus, Markus Frey, Martina G. Vilas, Martin Oywa, Martin Thoma, Masashi SHIBATA, Maxwell Aladago, mbillingr, m-clare, Meghann Agarwal, m.fab, Micah Smith, miguelbarao, Miguel Cabrera, Mina Naghshhnejad, Ming Li, motmoti, mschaffenroth, mthorrell, Natasha Borders, nezar-a, Nicolas Hug, Nidhin Pattaniyil, Nikita Titov, Nishan Singh Mann, Nitya Mandyam, norvan, notmatthancock, novaya, nxorable, Oleg Stikhin, Oleksandr Pavlyk, Olivier Grisel, Omar Saleem, Owen Flanagan, panpiort8, Paolo, Paolo Toccaceli, Paresh Mathur, Paula, Peng Yu, Peter Marko, pierretallotte, poorna-kumar, pspachtholz, qdeffense, Rajat Garg, Raphaël Bournhonesque, Ray, Ray Bell, Rebekah Kim, Reza Gharibi, Richard Payne, Richard W, rlms, Robert Juergens, Rok Mihevc, Roman Feldbauer, Roman Yurchak, R Sanjabi, RuchitaGarde, Ruth Waithera, Sackey, Sam Dixon, Samesh Lakhotia, Samuel Taylor, Sarra Habchi, Scott Gigante, Scott Sievert, Scott White, Sebastian Pölsterl, Sergey Feldman, SeWook Oh, she-dares, Shreya V, Shubham Mehta, Shuzhe Xiao, SimonCW, smarie, smujjiga, Sönke Behrends, Soumirai, Sourav Singh, stefan-matcovici, steinfurt, Stéphane Couvreur, Stephan Tulkens, Stephen Cowley, Stephen Tierney, SylvainLan, th0rwas, theoptips, theotheo, Thierno Ibrahima DIOP, Thomas Edwards, Thomas J Fan, Thomas Moreau, Thomas Schmitt, Tilen Kusterle, Tim Bicker, Timsaur, Tim Staley, Tirth Patel, Tola A, Tom Augspurger, Tom Dupré la Tour, topisan, Trevor Stephens, ttang131, Urvang Patel, Vathsala Achar, veerlosar, Venkatachalam N, Victor Luzgin, Vincent Jeanselme, Vincent Lostanlen, Vladimir Korolev, vnherdeiro, Wenbo Zhao, Wendy Hu, willdarnell, William de Vazelhes, wolframalpha, xavier dupré, xcjason, x-martian, xsat, xun-tang, Yinglr, yokasre, Yu-Hang "Maxin" Tang, Yulia Zamriy, Zhao Feng