版本 0.23#

有关本次发布主要亮点内容的简短描述,请参阅 scikit-learn 0.23 版本发布亮点

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 documented – 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.

版本 0.23.2#

变更的模型#

以下估计器和函数,在相同数据和参数下进行拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化所导致。

详细变更内容列于下方的变更日志中。

(虽然我们正努力通过提供此信息来更好地告知用户,但我们无法保证此列表是完整的。)

变更日志#

sklearn.cluster#

sklearn.decomposition#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.linear_model#

sklearn.manifold#

sklearn.metrics#

sklearn.pipeline#

sklearn.utils#

版本 0.23.1#

2020年5月18日

更新日志#

sklearn.cluster#

其他#

  • Fix 修复了第三方估计器在使用 **kwargs 参数的构造函数时,当 changed_only 为 True(现在是默认值)时的 repr 中的一个错误。#17205Nicolas Hug 提交。

版本 0.23.0#

2020年5月12日

强制使用仅关键字参数#

为了促进库的清晰和无歧义使用,大多数构造函数和函数参数现在期望作为关键字参数传递(即使用 param=value 语法)而不是位置参数。为了简化过渡,如果使用仅关键字参数作为位置参数,则会引发 FutureWarning 。在版本 1.0(0.25 的重命名)中,这些参数将严格为仅关键字,并且会引发 TypeError#15005Joel NothmanAdrin JalaliThomas FanNicolas Hug 提交。更多详情请参见 SLEP009

更改的模型#

以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强),或随机抽样程序的变化所导致。

svm.NuSVC , svm.NuSVR , svm.OneClassSVM , svm.SVC , svm.SVR , linear_model.LogisticRegression . - Fix tree.DecisionTreeClassifier , tree.ExtraTreeClassifier 以及

ensemble.GradientBoostingClassifier 以及 predict 方法的 tree.DecisionTreeRegressor , tree.ExtraTreeRegressor , 和 ensemble.GradientBoostingRegressor 以及只读的 float32 输入在 predict , decision_pathpredict_proba .

详细信息列在下面的更新日志中。

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

更新日志#

sklearn.cluster#

sklearn.compose#

#14048Lewis Ball 提交。

sklearn.datasets#

到根日志记录器,并遵循Python日志记录文档建议库将日志消息处理留给用户和应用程序代码。#16451Christoph Deil 提供。

sklearn.decomposition#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.gaussian_process#

@plgreenLIRU 编写。

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

linear_model.Lars 现在支持一个 jitter 参数,该参数会在目标中添加随机噪声。这可能在某些边缘情况下有助于稳定性。#15179@angelaambroz 贡献。

以及 linear_model.MultiTaskLassoCV ,在使用 joblib loky 后端时,拟合会失败。#14264Jérémie du Boisberranger 贡献。

sklearn.metrics#

sklearn.metrics#

  • Enhancement 在调用 pairwise_distances 时,可以选择并传递 metric 参数。#16993Joel Nothman 提交。

sklearn.model_selection#

sklearn.multioutput#

sklearn.naive_bayes#

sklearn.neural_network#

sklearn.inspection#


sklearn.preprocessing#

sklearn.semi_supervised#

sklearn.svm#

  • Fix Efficiency 改进了 libsvmliblinear 中用于随机选择坐标下降算法中坐标的随机数生成器。之前使用平台相关的 C 语言 rand() 函数,该函数在 Windows 平台上只能生成最大为 32767 的数字(参见这个 博客文章 ),并且根据 这个演示文稿 的建议,其随机化能力较差。现在替换为 C++11 的 mt19937 ,这是一个梅森旋转算法,能够在所有平台上正确生成 31 位/63 位随机数。此外,用于在有界区间内获取随机数的粗糙“取模”后处理器被替换为根据 这篇博客文章 建议的调整后的 Lemire 方法。任何使用 svm.libsvmsvm.liblinear 求解器的模型,包括 svm.LinearSVCsvm.LinearSVRsvm.NuSVCsvm.NuSVRsvm.OneClassSVMsvm.SVCsvm.SVRlinear_model.LogisticRegression ,都会受到影响。特别是当样本数量(LibSVM)或特征数量(LibLinear)较大时,用户可以期待更好的收敛效果。#13511Sylvain Marié 贡献。

  • Fix 修复了 svm.SVCsvm.SVR 中自定义核函数不接受浮点条目(如字符串核)的问题。请注意,自定义核函数现在需要在接收到有效数值数组时验证其输入。#11296Alexandre GramfortGeorgi Peev 贡献。

  • API Change svm.SVRsvm.OneClassSVM 的属性 probA_probB_ 现已弃用,因为它们没有实际用途。#15558Thomas Fan 贡献。

sklearn.tree#

#15806Chiara Marmo 提交。

sklearn.utils#

utils.estimator_checks.parametrize_with_checks 现已弃用, 并且对类的支持将在 0.24 版本中移除。请改为传递实例。 #17032Nicolas Hug 提交。

  • API Change utils.estimator_checks 中的私有工具 _safe_tags 已被移除, 因此所有标签应通过 estimator._get_tags() 获取。请注意,类似 RegressorMixin 的 Mixins 必须在 MRO 中 位于基类之前,以确保 _get_tags() 正常工作。 #16950Nicolas Hug 提交。

  • Fix utils.all_estimators 现在仅返回公共估计器。 #15380Thomas Fan 提交。

其他#

  • Major Feature 增加了在 Jupyter Notebook 或 Lab 中显示的估计器的 HTML 表示。 通过设置 sklearn.set_config 中的 display 选项激活此可视化。 #14180Thomas Fan 提交。

  • Enhancement scikit-learn 现在可以在没有错误的情况下与 mypy 一起工作。 #16726Roman Yurchak 提交。

  • API Change 大多数估计器现在公开了一个 n_features_in_ 属性。该属性等于传递给 fit 方法的特征数量。 详情请参见 SLEP010#16112Nicolas Hug 提交。

  • API Change 估计器现在有一个默认值为 False 的 requires_y 标签, 除了继承自 ~sklearn.base.RegressorMixin~sklearn.base.ClassifierMixin 的估计器。 此标签用于确保在预期 y 但传递了 None 时引发适当的错误消息。 #16622Nicolas Hug 提交。

  • API Change 默认设置 print_changed_only 已从 False 更改为 True。 这意味着估计器的 repr 现在更加简洁,仅在打印估计器时显示默认值已更改的参数。 您可以通过使用 sklearn.set_config(print_changed_only=False) 恢复之前的行为。 另外,请注意,

总是可以使用 est.get_params(deep=False) 快速检查任何估计器的参数。由 Nicolas Hug 提交的 #17061

代码和文档贡献者

感谢自版本 0.22 以来为项目的维护和改进做出贡献的每一个人,包括:

Abbie Popa, Adrin Jalali, Aleksandra Kocot, Alexandre Batisse, Alexandre Gramfort, Alex Henrie, Alex Itkes, Alex Liang, alexshacked, Alonso Silva Allende, Ana Casado, Andreas Mueller, Angela Ambroz, Ankit810, Arie Pratama Sutiono, Arunav Konwar, Baptiste Maingret, Benjamin Beier Liu, bernie gray, Bharathi Srinivasan, Bharat Raghunathan, Bibhash Chandra Mitra, Brian Wignall, brigi, Brigitta Sipőcz, Carlos H Brandt, CastaChick, castor, cgsavard, Chiara Marmo, Chris Gregory, Christian Kastner, Christian Lorentzen, Corrie Bartelheimer, Daniël van Gelder, Daphne, David Breuer, david-cortes, dbauer9, Divyaprabha M, Edward Qian, Ekaterina Borovikova, ELNS, Emily Taylor, Erich Schubert, Eric Leung, Evgeni Chasnovski, Fabiana, Facundo Ferrín, Fan, Franziska Boenisch, Gael Varoquaux, Gaurav Sharma, Geoffrey Bolmier, Georgi Peev, gholdman1, Gonthier Nicolas, Gregory Morse, Gregory R. Lee, Guillaume Lemaitre, Gui Miotto, Hailey Nguyen, Hanmin Qin, Hao Chun Chang, HaoYin, Hélion du Mas des Bourboux, Himanshu Garg, Hirofumi Suzuki, huangk10, Hugo van Kemenade, Hye Sung Jung, indecisiveuser, inderjeet, J-A16, Jérémie du Boisberranger, Jin-Hwan CHO, JJmistry, Joel Nothman, Johann Faouzi, Jon Haitz Legarreta Gorroño, Juan Carlos Alfaro Jiménez, judithabk6, jumon, Kathryn Poole, Katrina Ni, Kesshi Jordan, Kevin Loftis, Kevin Markham, krishnachaitanya9, Lam Gia Thuan, Leland McInnes, Lisa Schwetlick, lkubin, Loic Esteve, lopusz, lrjball, lucgiffon, lucyleeow, Lucy Liu, Lukas Kemkes, Maciej J Mikulski, Madhura Jayaratne, Magda Zielinska, maikia, Mandy Gu, Manimaran, Manish Aradwad, Maren Westermann, Maria, Mariana Meireles, Marie Douriez, Marielle, Mateusz Górski, mathurinm, Matt Hall, Maura Pintor, mc4229, meyer89, m.fab, Michael Shoemaker, Michał Słapek, Mina Naghshhnejad, mo, Mohamed Maskani, Mojca Bertoncelj, narendramukherjee, ngshya, Nicholas Won, Nicolas Hug, nicolasservel, Niklas, @nkish, Noa Tamir, Oleksandr Pavlyk, olicairns, Oliver Urs Lenz, Olivier Grisel, parsons-kyle-89, Paula, Pete Green, Pierre Delanoue, pspachtholz, Pulkit Mehta, Qizhi Jiang, Quang Nguyen, rachelcjordan, raduspaimoc, Reshama Shaikh, Riccardo Folloni, Rick Mackenbach, Ritchie Ng, Roman Feldbauer, Roman Yurchak, Rory Hartong-Redden, Rüdiger Busche, Rushabh Vasani, Sambhav Kothari, Samesh Lakhotia, Samuel Duan, SanthoshBala18, Santiago M. Mola, Sarat Addepalli, scibol, Sebastian Kießling, SergioDSR, Sergul Aydore, Shiki-H, shivamgargsya, SHUBH CHATTERJEE, Siddharth Gupta, simonamaggio, smarie, Snowhite, stareh, Stephen Blystone, Stephen Marsh, Sunmi Yoon, SylvainLan, talgatomarov, tamirlan1, th0rwas, theoptips, Thomas J Fan, Thomas Li, Thomas Schmitt, Tim Nonner, Tim Vink, Tiphaine Viard, Tirth Patel, Titus Christian, Tom Dupré la Tour, trimeta, Vachan D A, Vandana Iyer, Venkatachalam N, waelbenamara, wconnell, wderose, wenliwyan, Windber, wornbb, Yu-Hang “Maxin” Tang