版本 1.4#

有关此版本主要亮点的简短描述,请参阅 scikit-learn 1.4 版本亮点

更新日志图例

  • 重大功能 以前无法实现的大功能。

  • 功能 以前无法实现的功能。

  • 效率提升 现有功能现在可能不需要那么多计算或内存。

  • 增强 一般性的小改进。

  • 修复 以前无法按文档或合理预期工作的问题现在应该可以了。

  • API 变更 未来你需要更改代码才能达到相同的效果;或者未来某个功能将被移除。

版本 1.4.2#

2024 年 4 月

此版本仅包含对 numpy 2 的支持。

版本 1.4.1#

2024 年 2 月

变更模型#

元数据路由#

DataFrame 支持#

  • 增强 修复 Pandas 和 Polars dataframe 直接验证,无需进行鸭子类型检查。 #28195 by Thomas Fan

影响多个模块的变更#

更新日志#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.ensemble#

  • 修复 修复了 HistGradientBoostingClassifierHistGradientBoostingRegressor 在拟合包含 extension dtypes(例如 pd.Int64Dtype)的 pandas DataFrame 时的问题。 #28385 by Loïc Estève

  • 修复 修复了当目标是 DataFrame 格式的多标签或多类多输出时,ensemble.VotingClassifier 引发的错误消息。 #27702 by Guillaume Lemaitre

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

sklearn.preprocessing#

sklearn.tree#

sklearn.utils#

版本 1.4.0#

2024 年 1 月

变更模型#

以下估计器和函数在用相同数据和参数拟合时,可能会产生与上一个版本不同的模型。这通常是由于建模逻辑(bug 修复或增强)或随机采样过程的更改所致。

  • 效率提升 linear_model.LogisticRegressionlinear_model.LogisticRegressionCV 的求解器 "lbfgs""newton-cg" 现在具有更好的收敛性。根据指定的 tol,这两个求解器现在都可以达到更高的系数精度。此外,lbfgs 可以更好地利用 tol,即更快地停止或达到更高的精度。注意:lbfgs 是默认求解器,因此此更改可能会影响许多模型。此更改还意味着,使用此新版本的 scikit-learn,模型的最终系数 coef_intercept_ 将会针对这两个求解器发生变化(当再次拟合相同数据时)。变化量取决于指定的 tol,对于较小的值,你将获得更精确的结果。 #26721 by Christian Lorentzen

  • 修复 修复了在 PyPy 中使用 Cython 损失函数的估计器中出现的内存泄漏问题。 #27670 by Guillaume Lemaitre

影响所有模块的变更#

元数据路由#

以下模型现在在其一个或多个方法中支持元数据路由。有关详细信息,请参阅 元数据路由用户指南

支持 SciPy 稀疏数组#

一些估计器现在支持 SciPy 稀疏数组。受影响的函数和类如下:

函数

类别数

支持 Array API#

一些估计器和函数支持 Array API。这些更改允许使用 JAX、CuPy 和 PyTorch 等其他库中的估计器和函数。因此,这可以实现一些 GPU 加速计算。

有关详细信息,请参阅 Array API 支持(实验性)

函数

类别数

私有损失函数模块#

更新日志#

sklearn.base#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.covariance#

sklearn.datasets#

sklearn.decomposition#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.inspection#

sklearn.kernel_ridge#

sklearn.linear_model#

sklearn.metrics#

sklearn.model_selection#

sklearn.multioutput#

sklearn.neighbors#

sklearn.preprocessing#

sklearn.tree#

sklearn.utils#

  • Enhancement sklearn.utils.estimator_html_repr 根据浏览器的 prefers-color-scheme 动态调整图表颜色,从而改进了对暗模式环境的适应性。 #26862 by Andrew Goh Yisheng, Thomas Fan, Adrin Jalali.

  • Enhancement MetadataRequest and MetadataRouter 现在有一个 consumes 方法,可用于检查是否会消耗给定的一组参数。 #26831 by Adrin Jalali.

  • Enhancement 使 sklearn.utils.check_array 尝试在从 DIA 数组转换时输出 int32 索引的 CSR 和 COO 数组,如果非零条目数量足够小。这确保了 Cython 中实现的估计器(不接受 int64 索引的稀疏数据结构)现在始终接受与 SciPy 稀疏矩阵和数组相同的稀疏输入格式。 #27372 by Guillaume Lemaitre.

  • Fix sklearn.utils.check_array 应接受来自稀疏 SciPy 模块的矩阵和数组。以前的实现会在 copy=True 时失败,因为它调用了特定的 NumPy np.may_share_memory,该函数不适用于 SciPy 稀疏数组,并且对于 SciPy 稀疏矩阵不返回正确的结果。 #27336 by Guillaume Lemaitre.

  • Fix check_estimators_pickle with readonly_memmap=True 现在依赖 joblib 自身的能力来在加载序列化估计器时分配对齐的内存映射数组,而不是调用一个专用的私有函数,该函数在 OpenBLAS 错误检测 CPU 架构时会崩溃。 #27614 by Olivier Grisel.

  • 修复 check_array 中的错误消息修复:当传递稀疏矩阵但 accept_sparseFalse 时,现在建议使用 .toarray() 而非 X.toarray()#27757Lucy Liu 贡献。

  • 修复 修复函数 check_array,使其在输入为 Series 而非 DataFrame 时输出正确的错误消息。 #28090Stan FurrerYao Xiao 贡献。

  • API 变更 sklearn.utils.extmath.log_logistic 已弃用,并将在 1.6 版本中移除。请改用 -np.logaddexp(0, -x)#27544Christian Lorentzen 贡献。

代码和文档贡献者

感谢自 1.3 版本以来为项目的维护和改进做出贡献的所有人,包括

101AlexMartin, Abhishek Singh Kushwah, Adam Li, Adarsh Wase, Adrin Jalali, Advik Sinha, Alex, Alexander Al-Feghali, Alexis IMBERT, AlexL, Alex Molas, Anam Fatima, Andrew Goh, andyscanzio, Aniket Patil, Artem Kislovskiy, Arturo Amor, ashah002, avm19, Ben Holmes, Ben Mares, Benoit Chevallier-Mames, Bharat Raghunathan, Binesh Bannerjee, Brendan Lu, Brevin Kunde, Camille Troillard, Carlo Lemos, Chad Parmet, Christian Clauss, Christian Lorentzen, Christian Veenhuis, Christos Aridas, Cindy Liang, Claudio Salvatore Arcidiacono, Connor Boyle, cynthias13w, DaminK, Daniele Ongari, Daniel Schmitz, Daniel Tinoco, David Brochart, Deborah L. Haar, DevanshKyada27, Dimitri Papadopoulos Orfanos, Dmitry Nesterov, DUONG, Edoardo Abati, Eitan Hemed, Elabonga Atuo, Elisabeth Günther, Emma Carballal, Emmanuel Ferdman, epimorphic, Erwan Le Floch, Fabian Egli, Filip Karlo Došilović, Florian Idelberger, Franck Charras, Gael Varoquaux, Ganesh Tata, Hleb Levitski, Guillaume Lemaitre, Haoying Zhang, Harmanan Kohli, Ily, ioangatop, IsaacTrost, Isaac Virshup, Iwona Zdzieblo, Jakub Kaczmarzyk, James McDermott, Jarrod Millman, JB Mountford, Jérémie du Boisberranger, Jérôme Dockès, Jiawei Zhang, Joel Nothman, John Cant, John Hopfensperger, Jona Sassenhagen, Jon Nordby, Julien Jerphanion, Kennedy Waweru, kevin moore, Kian Eliasi, Kishan Ved, Konstantinos Pitas, Koustav Ghosh, Kushan Sharma, ldwy4, Linus, Lohit SundaramahaLingam, Loic Esteve, Lorenz, Louis Fouquet, Lucy Liu, Luis Silvestrin, Lukáš Folwarczný, Lukas Geiger, Malte Londschien, Marcus Fraaß, Marek Hanuš, Maren Westermann, Mark Elliot, Martin Larralde, Mateusz Sokół, mathurinm, mecopur, Meekail Zain, Michael Higgins, Miki Watanabe, Milton Gomez, MN193, Mohammed Hamdy, Mohit Joshi, mrastgoo, Naman Dhingra, Naoise Holohan, Narendra Singh dangi, Noa Malem-Shinitski, Nolan, Nurseit Kamchyev, Oleksii Kachaiev, Olivier Grisel, Omar Salman, partev, Peter Hull, Peter Steinbach, Pierre de Fréminville, Pooja Subramaniam, Puneeth K, qmarcou, Quentin Barthélemy, Rahil Parikh, Rahul Mahajan, Raj Pulapakura, Raphael, Ricardo Peres, Riccardo Cappuzzo, Roman Lutz, Salim Dohri, Samuel O. Ronsin, Sandip Dutta, Sayed Qaiser Ali, scaja, scikit-learn-bot, Sebastian Berg, Shreesha Kumar Bhat, Shubhal Gupta, Søren Fuglede Jørgensen, Stefanie Senger, Tamara, Tanjina Afroj, THARAK HEGDE, thebabush, Thomas J. Fan, Thomas Roehr, Tialo, Tim Head, tongyu, Venkatachalam N, Vijeth Moudgalya, Vincent M, Vivek Reddy P, Vladimir Fokow, Xiao Yuan, Xuefeng Xu, Yang Tao, Yao Xiao, Yuchen Zhou, Yuusuke Hiramatsu