版本 1.5#

有关此版本主要亮点的简短说明,请参阅 scikit-learn 1.5 的发行亮点

变更日志图例

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

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

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

  • 增强 各种各样的次要改进。

  • 修复 以前无法按文档说明(或根据合理预期)工作的内容现在应该可以工作了。

  • API 变更 您需要更改代码才能在将来获得相同的效果;或者某个功能将在将来被移除。

版本 1.5.2#

2024年9月

影响多个模块的更改#

  • 修复 修复了 sklearn._losssklearn.manifoldsklearn.metricssklearn.utils 中一些 Cython 模块的性能回归问题,这些模块是在没有 OpenMP 支持的情况下构建的。 #29694Loïc Estèvce 提供。

变更日志#

sklearn.calibration#

  • 修复 当在 cv 中使用 LeaveOneOut 时引发错误,这与使用 KFold(n_splits=n_samples) 时发生的情况一致。 #29545Lucy Liu 提供。

sklearn.compose#

sklearn.decomposition#

sklearn.metrics#

sklearn.svm#

版本 1.5.1#

2024年7月

影响多个模块的更改#

  • 修复 修复了所有估计器的输入数据验证中的回归问题,其中在传递由只读缓冲区支持的 DataFrame 时会引发意外错误。 #29018Jérémie du Boisberranger 提供。

  • 修复 修复了一个在某些设置下导致导入时死锁的回归问题。 #29235Jérémie du Boisberranger 修复。

变更日志#

sklearn.compose#

sklearn.metrics#

  • 修复 修复了 metrics.r2_score 的一个回归问题。传递禁用数组 API 调度的 torch CPU 张量会报错非 CPU 设备,而不是将其隐式转换为常规 NumPy 数组。 #29119@Olivier Grisel 修复。

  • 修复 修复了 metrics.zero_one_loss 的一个回归问题,该问题导致在使用多标签输入进行数组 API 调度时出错。 #29269Yaroslav Korobko 修复。

sklearn.model_selection#

sklearn.tree#

sklearn.utils#

  • API 变更 utils.validation.check_array 添加了一个新参数 force_writeable,用于控制输出数组的可写性。如果设置为 True,则保证输出数组可写,如果输入数组为只读,则会创建副本。如果设置为 False,则不保证输出数组的可写性。 #29018Jérémie du Boisberranger 添加。

1.5.0 版本#

2024 年 5 月

安全#

  • 修复 feature_extraction.text.CountVectorizerfeature_extraction.text.TfidfVectorizer 不再将其 stop_words_ 属性中存储从训练集中丢弃的标记。此属性将保存过于频繁(高于 max_df)但也过于稀少的标记(低于 min_df)。这修复了潜在的安全问题(数据泄漏),如果丢弃的稀有标记包含来自训练集的敏感信息,而模型开发者并不知情。

    注意:鼓励使用这些类的用户使用新的 scikit-learn 版本重新训练他们的管道,或者手动清除以前训练的这些转换器的 stop_words_ 属性。此属性仅用于模型检查,不会影响转换器的行为。#28823Olivier Grisel 完成。

已更改的模型#

  • 效率提升 preprocessing.QuantileTransformer 中的子采样现在对于密集数组更高效,但拟合的分位数和 transform 的结果可能与以前略有不同(保持相同的统计特性)。#27344Xuefeng Xu 完成。

  • 增强 decomposition.PCAdecomposition.SparsePCAdecomposition.TruncatedSVD 现在根据组件值设置 components_ 属性的符号,而不是使用转换后的数据作为参考。此更改是必要的,以便能够在所有 PCA 求解器(包括此版本中引入的新的 svd_solver="covariance_eigh" 选项)中提供一致的组件符号。

影响许多模块的更改#

对 Array API 的支持#

其他估计器和函数已更新,以包括对所有符合 Array API 的输入的支持。

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

函数

使用 Meson 构建的支持#

从 scikit-learn 1.5 开始,Meson 是构建 scikit-learn 的主要支持方式,有关更多详细信息,请参阅 从源代码构建

除非我们发现主要的障碍,否则 setuptools 支持将在 scikit-learn 1.6 中被删除。1.5.x 版本将支持使用 setuptools 构建 scikit-learn。

#28040 中添加了 scikit-learn 的 Meson 构建支持,由 Loïc Estève 完成。

元数据路由#

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

变更日志#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.cross_decomposition#

sklearn.datasets#

sklearn.decomposition#

  • 效率提升 使用 svd_solver="full"decomposition.PCA 现在分配一个连续的 components_ 属性,而不是非连续的奇异向量切片。当 n_components << n_features 时,这可以节省一些内存,更重要的是,通过利用连续数组上 BLAS GEMM 的缓存局部性,可以将后续对 transform 方法的调用速度提高一个数量级以上。#27491Olivier Grisel 完成。

  • 增强svd_solver="auto" 时,PCA 现在会自动为稀疏输入选择 ARPACK 求解器,而不是抛出错误。#28498Thanh Lam Dang 完成。

  • 增强 decomposition.PCA 现在支持一个名为 svd_solver="covariance_eigh" 的新的求解器选项,该选项对于具有大量数据点和少量特征的数据集(例如,n_samples >> 1000 > n_features)提供了数量级的速度提升和内存使用减少。svd_solver="auto" 选项已更新为自动为此类数据集使用新的求解器。此求解器也接受稀疏输入数据。#27491Olivier Grisel 完成。

  • 修复 使用 svd_solver="arpack"whiten=True 和大于训练集秩的 n_components 值的 decomposition.PCA拟合,在转换保留数据时不再返回无限值。#27491Olivier Grisel 完成。

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

sklearn.manifold#

  • API 变更 弃用 n_iter,推荐使用 max_iter,适用于 manifold.TSNEn_iter 将在 1.7 版本中移除。这使得 manifold.TSNE 与其他估计器保持一致。 #28471Lucy Liu 完成。

sklearn.metrics#

sklearn.mixture#

sklearn.model_selection#

sklearn.multioutput#

sklearn.neighbors#

sklearn.pipeline#

  • 功能 pipeline.FeatureUnion 现在可以使用 verbose_feature_names_out 属性。如果为 Trueget_feature_names_out 将在所有特征名称前加上生成该特征的转换器的名称作为前缀。如果为 Falseget_feature_names_out 将不会添加任何前缀,如果特征名称不唯一则会报错。 #25991Jiawei Zhang 完成。

sklearn.preprocessing#

sklearn.tree#

  • 增强 通过 tree.plot_tree 在 matplotlib 中绘制树现在会显示“True/False”标签,以指示样本在给定分割条件下遍历的方向。 #28552Adam Li 贡献。

sklearn.utils#

代码和文档贡献者

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

101AlexMartin,Abdulaziz Aloqeely,Adam J. Stewart,Adam Li,Adarsh Wase,Adeyemi Biola,Aditi Juneja,Adrin Jalali,Advik Sinha,Aisha,Akash Srivastava,Akihiro Kuno,Alan Guedes,Alberto Torres,Alexis IMBERT,alexqiao,Ana Paula Gomes,Anderson Nelson,Andrei Dzis,Arif Qodari,Arnaud Capitaine,Arturo Amor,Aswathavicky,Audrey Flanders,awwwyan,baggiponte,Bharat Raghunathan,bme-git,brdav,Brendan Lu,Brigitta Sipőcz,Bruno,Cailean Carter,Cemlyn,Christian Lorentzen,Christian Veenhuis,Cindy Liang,Claudio Salvatore Arcidiacono,Connor Boyle,Conrad Stevens,crispinlogan,David Matthew Cherney,Davide Chicco,davidleon123,dependabot[bot],DerWeh,dinga92,Dipan Banik,Drew Craeton,Duarte São José,DUONG,Eddie Bergman,Edoardo Abati,Egehan Gunduz,Emad Izadifar,EmilyXinyi,Erich Schubert,Evelyn,Filip Karlo Došilović,Franck Charras,Gael Varoquaux,Gönül Aycı,Guillaume Lemaitre,Gyeongjae Choi,Harmanan Kohli,Hong Xiang Yue,Ian Faust,Ilya Komarov,itsaphel,Ivan Wiryadi,Jack Bowyer,Javier Marin Tur,Jérémie du Boisberranger,Jérôme Dockès,Jiawei Zhang,João Morais,Joe Cainey,Joel Nothman,Johanna Bayer,John Cant,John Enblom,John Hopfensperger,jpcars,jpienaar-tuks,Julian Chan,Julian Libiseller-Egger,Julien Jerphanion,KanchiMoe,Kaushik Amar Das,keyber,Koustav Ghosh,kraktus,Krsto Proroković,Lars,ldwy4,LeoGrin,lihaitao,Linus Sommer,Loic Esteve,Lucy Liu,Lukas Geiger,m-maggi,manasimj,Manuel Labbé,Manuel Morales,Marco Edward Gorelli,Marco Wolsza,Maren Westermann,Marija Vlajic,Mark Elliot,Martin Helm,Mateusz Sokół,mathurinm,Mavs,Michael Dawson,Michael Higgins,Michael Mayer,miguelcsilva,Miki Watanabe,Mohammed Hamdy,myenugula,Nathan Goldbaum,Naziya Mahimkar,nbrown-ScottLogic,Neto,Nithish Bolleddula,notPlancha,Olivier Grisel,Omar Salman,ParsifalXu,Patrick Wang,Pierre de Fréminville,Piotr,Priyank Shroff,Priyansh Gupta,Priyash Shah,Puneeth K,Rahil Parikh,raisadz,Raj Pulapakura,Ralf Gommers,Ralph Urlus,Randolf Scholz,renaissance0ne,Reshama Shaikh,Richard Barnes,Robert Pollak,Roberto Rosati,Rodrigo Romero,rwelsch427,Saad Mahmood,Salim Dohri,Sandip Dutta,SarahRemus,scikit-learn-bot,Shaharryar Choudhry,Shubham,sperret6,Stefanie Senger,Steffen Schneider,Suha Siddiqui,Thanh Lam DANG,thebabush,Thomas,Thomas J. Fan,Thomas Lazarus,Tialo,Tim Head,Tuhin Sharma,Tushar Parimi,VarunChaduvula,Vineet Joshi,virchan,Waël Boukhobza,Weyb,Will Dean,Xavier Beltran,Xiao Yuan,Xuefeng Xu,Yao Xiao,yareyaredesuyo,Ziad Amerr,Štěpán Sršeň