版本 1.5#

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

更新日志图例

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

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

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

  • 增强 一般性的小改进。

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

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

版本 1.5.2#

2024 年 9 月

影响多个模块的变更#

  • 修复 修复了 sklearn._losssklearn.manifoldsklearn.metricssklearn.utils 中几个 Cython 模块的性能回归问题,这些模块在构建时没有 OpenMP 支持。由 Loïc Estèvce#29694 中修复。

更新日志#

sklearn.calibration#

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

sklearn.compose#

sklearn.decomposition#

sklearn.metrics#

sklearn.svm#

版本 1.5.1#

2024 年 7 月

影响多个模块的更改#

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

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

更新日志#

sklearn.compose#

sklearn.metrics#

  • 修复 修复了 metrics.r2_score 中的一个回归问题。在禁用 Array API 调度的情况下传递 torch CPU 张量时,它会抱怨非 CPU 设备,而不是隐式地将这些输入转换为常规 NumPy 数组。由 @Olivier Grisel#29119 中修复。

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

sklearn.model_selection#

sklearn.tree#

sklearn.utils#

  • API 变更 utils.validation.check_array 有一个新的参数 force_writeable,用于控制输出数组的可写性。如果设置为 True,则保证输出数组可写,如果输入数组是只读的,则会进行复制。如果设置为 False,则不对输出数组的可写性做出保证。由 Jérémie du Boisberranger#29018 中添加。

版本 1.5.0#

2024 年 5 月

安全#

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

    注意:建议这些类的用户要么使用新版本的 scikit-learn 重新训练其管道,要么手动清除以前训练的这些转换器实例中的 stop_words_ 属性。此属性仅用于模型检查目的,对转换器的行为没有影响。由 Olivier Grisel#28823 中修复。

变更模型#

影响多个模块的更改#

支持 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。

对使用 Meson 构建 scikit-learn 的支持由 Loïc Estève#28040 中添加。

元数据路由#

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

更新日志#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.cross_decomposition#

sklearn.datasets#

sklearn.decomposition#

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

  • 增强svd_solver="auto" 时,PCA 现在会自动为稀疏输入选择 ARPACK 求解器,而不是引发错误。由 Thanh Lam Dang#28498 中修复。

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

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

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

sklearn.manifold#

  • API 变更manifold.TSNE 中弃用 n_iter,转而使用 max_itern_iter 将在 1.7 版本中删除。这使得 manifold.TSNE 与其他估计器保持一致。由 Lucy Liu#28471 中修复。

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 不会在特征名称前加上前缀,如果特征名称不唯一则会报错。 #25991,由 Jiawei Zhang 提交。

sklearn.preprocessing#

sklearn.tree#

  • 增强 通过 tree.plot_tree 在 matplotlib 中绘制决策树时,现在会显示“True/False”标签,以指示样本根据分割条件遍历的方向。 #28552,由 Adam Li 提交。

sklearn.utils#

  • 修复 _safe_indexing 现在在 axis=0 时可以正确处理 polars DataFrame,并支持对 polars Series 进行索引。 #28521,由 Yao Xiao 提交。

  • API 变更 utils.IS_PYPY 已弃用,并将在 1.7 版本中移除。 #28768,由 Jérémie du Boisberranger 提交。

  • API 变更 utils.tosequence 已弃用,并将在 1.7 版本中移除。 #28763,由 Jérémie du Boisberranger 提交。

  • API 变更 utils.parallel_backendutils.register_parallel_backend 已弃用,并将在 1.7 版本中移除。请改用 joblib.parallel_backendjoblib.register_parallel_backend#28847,由 Jérémie du Boisberranger 提交。

  • API 变更 当目标表示为字节时,type_of_target 会发出有意义的警告消息。对于分类器和分类指标,将标签编码为字节已弃用,并将在 v1.7 中引发错误。 #18555,由 Kaushik Amar Das 提交。

  • API 变更 utils.estimator_checks.check_estimator_sparse_data 被拆分为两个函数:utils.estimator_checks.check_estimator_sparse_matrixutils.estimator_checks.check_estimator_sparse_array#27576,由 Stefanie Senger 提交。

代码和文档贡献者

感谢自 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, Shaharyar 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ň