版本 1.5#

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

更新日志图例

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

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

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

  • 增强 一些次要的改进。

  • 修复 以前与文档不符或不符合合理预期的问题现在应该已经解决。

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

版本 1.5.2#

2024 年 9 月

影响多个模块的变更#

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

更新日志#

sklearn.calibration#

  • 修复cv 中使用 LeaveOneOut 时抛出错误,与使用 KFold(n_splits=n_samples) 时的情况一致。#29545 by Lucy Liu

sklearn.compose#

sklearn.decomposition#

sklearn.metrics#

sklearn.svm#

版本 1.5.1#

2024 年 7 月

影响多个模块的变更#

更新日志#

sklearn.compose#

sklearn.metrics#

sklearn.model_selection#

sklearn.tree#

sklearn.utils#

  • API 变更 utils.validation.check_array 新增参数 force_writeable,用于控制输出数组的可写性。如果设置为 True,则保证输出数组可写,如果输入数组是只读的,则会进行复制。如果设置为 False,则不对输出数组的可写性做任何保证。#29018 by Jé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_ 属性。此属性仅用于模型检查目的,对转换器的行为没有影响。#28823 by Olivier Grisel

更改的模型#

影响多个模块的变更#

支持 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 的支持已在 #28040 中添加,由 Loïc Estève 贡献。

元数据路由#

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

更新日志#

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 方法的调用速度提高一个数量级以上。#27491 by Olivier Grisel

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

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

  • 修复 decomposition.PCAsvd_solver="arpack"whiten=Truen_components 值大于训练集秩的情况下进行拟合时,转换保留数据不再返回无穷大值。#27491 by Olivier Grisel

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

sklearn.manifold#

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#

  • 修复 _safe_indexing 现在在 `axis=0` 时可以正确地用于 Polars DataFrame,并支持对 Polars Series 进行索引。 #28521Yao Xiao 贡献。

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

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

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

  • API 变更 当标签以字节表示时,type_of_target 将引发信息性警告消息。对于分类器和分类指标,以字节编码的标签已弃用,并将在 v1.7 版本中引发错误。 #18555Kaushik Amar Das 贡献。

  • API 变更 utils.estimator_checks.check_estimator_sparse_data 已被拆分为两个函数:utils.estimator_checks.check_estimator_sparse_matrixutils.estimator_checks.check_estimator_sparse_array#27576Stefanie 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ň