版本 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#

  • 修复verbose_feature_names_out=True 且变换器在内部多次使用相同的列时,compose.ColumnTransformer 现在会转换为 polars 数据框。之前,由于列名重复,它会引发错误。 #28262Guillaume Lemaitre 提供。

sklearn.ensemble#

  • 修复 当在具有扩展数据类型的 pandas DataFrame (例如 pd.Int64Dtype)上拟合 HistGradientBoostingClassifierHistGradientBoostingRegressor 时的错误。 #28385Loïc Estève 提供。

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

sklearn.impute#

  • 修复:如果 fill_value 不能使用 casting='same_kind' 转换为输入值的 dtype,则 impute.SimpleImputer 现在会在 .fit.transform 中引发错误。 #28365Leo Grinsztajn 提供。

sklearn.inspection#

sklearn.linear_model#

sklearn.preprocessing#

sklearn.tree#

sklearn.utils#

版本 1.4.0#

2024年1月

模型变更#

使用相同数据和参数拟合的以下估计器和函数,可能产生与先前版本不同的模型。这通常是由于建模逻辑(错误修复或增强)或随机抽样过程中的更改引起的。

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

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

影响所有模块的更改#

  • 主要功能 变换器现在支持使用 set_output(transform="polars") 输出 polars 数据。 #27315Thomas Fan 贡献。

  • 增强 所有估计器现在都能够识别采用 DataFrame 交换协议 的任何数据框的列名。 通过 np.asarray(df) 返回正确表示的数据框应该可以与我们的估计器和函数一起使用。 #26464Thomas Fan 贡献。

  • 增强 估计器的 HTML 表示现在包含一个指向文档的链接,并使用颜色编码来表示估计器是否已拟合(未拟合的估计器为橙色,已拟合的估计器为蓝色)。 #26616Riccardo CappuzzoInes IbnukhseinGael VaroquauxJoel NothmanLilian Boulard 贡献。

  • 修复 修复了大多数估计器和函数中的一个错误,该错误是在将参数设置为一个很大的整数时会导致 TypeError#26648Naoise Holohan 贡献。

元数据路由#

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

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#

  • 增强 sklearn.utils.estimator_html_repr 会根据浏览器的 prefers-color-scheme 动态调整图表颜色,从而更好地适应暗模式环境。#26862Andrew Goh YishengThomas FanAdrin Jalali 贡献。

  • 增强 MetadataRequestMetadataRouter 现在具有 consumes 方法,可用于检查是否会使用给定的参数集。#26831Adrin Jalali 贡献。

  • 增强 如果非零条目的数量足够小,则使 sklearn.utils.check_array 尝试在从 DIA 数组转换时输出 int32 索引的 CSR 和 COO 数组。这确保了用 Cython 实现且不接受 int64 索引的稀疏数据结构的估计器现在一致地接受 SciPy 稀疏矩阵和数组的相同稀疏输入格式。#27372Guillaume Lemaitre 贡献。

  • 修复 sklearn.utils.check_array 应该接受来自 SciPy 稀疏模块的矩阵和数组。之前的实现如果 copy=True,则会通过调用特定的 NumPy np.may_share_memory 函数失败,该函数不适用于 SciPy 稀疏数组,并且不会为 SciPy 稀疏矩阵返回正确的结果。#27336Guillaume Lemaitre 贡献。

  • 修复 使用 readonly_memmap=Truecheck_estimators_pickle 现在依赖于 joblib 自身在加载序列化估计器时分配对齐的内存映射数组的能力,而不是调用专用私有函数(当 OpenBLAS 错误检测 CPU 架构时会崩溃)。#27614Olivier Grisel 贡献。

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

  • 修复 修复函数 check_array,使其在输入为 Series 而不是 DataFrame 时输出正确的错误消息。 #28090Stan Furrer姚晓 贡献。

  • API变更 sklearn.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,Gleb 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