版本 1.2#
有关此版本主要亮点的简短描述,请参阅 scikit-learn 1.2 的版本亮点。
更新日志图例
重大特性 以前无法实现的大功能。
特性 以前无法实现的功能。
效率提升 现有功能现在可能不需要那么多计算或内存。
增强功能 杂项小改进。
修复 以前无法按文档所述(或根据合理预期)运行的功能现在应该可以运行了。
API 变更 您需要更改代码以在将来实现相同效果;或者某个功能将在将来移除。
版本 1.2.2#
2023 年 3 月
更新日志#
sklearn.base#
修复 当
set_output(transform="pandas")时,如果 transform 输出已经是 DataFrame,则base.TransformerMixin会保留索引。 #25747 by Thomas Fan。
sklearn.calibration#
修复 使用
base_estimator__前缀设置calibration.CalibratedClassifierCV中使用的估计器参数时会引发弃用警告。 #25477 by Tim Head。
sklearn.cluster#
修复 修复了
cluster.BisectingKMeans中的一个错误,该错误曾导致在运行多次初始化时,由于标签排列而导致fit随机失败。 #25563 by Jérémie du Boisberranger。
sklearn.compose#
修复 修复了
compose.ColumnTransformer中的一个错误,现在当set_output(transform="pandas")时,它支持空的列选择。 #25570 by Thomas Fan。
sklearn.ensemble#
修复 使用
base_estimator__前缀设置ensemble.AdaBoostClassifier、ensemble.AdaBoostRegressor、ensemble.BaggingClassifier和ensemble.BaggingRegressor中使用的估计器参数时会引发弃用警告。 #25477 by Tim Head。
sklearn.feature_selection#
修复 修复了
feature_selection.SequentialFeatureSelector不再接受负值tol的回归问题。 #25664 by Jérémie du Boisberranger。
sklearn.inspection#
修复 在
inspection.partial_dependence中处理无法通过numpy.unique排序的混合数据类型类别时,引发更具信息性的错误消息。当类别为str并且存在使用np.nan的缺失值时,通常会发生此问题。 #25774 by Guillaume Lemaitre。
sklearn.isotonic#
修复 修复了
isotonic.IsotonicRegression中的一个错误,该错误曾导致当全局配置设置transform_output="pandas"时,isotonic.IsotonicRegression.predict返回 pandas DataFrame。 #25500 by Guillaume Lemaitre。
sklearn.preprocessing#
修复 当存在不常见的类别时,
preprocessing.OneHotEncoder.drop_idx_现在可以正确引用categories_属性中被删除的类别。 #25589 by Thomas Fan。修复 当训练数据中存在缺失值时,
preprocessing.OrdinalEncoder现在正确支持encoded_missing_value或unknown_value设置为类别的基数。 #25704 by Thomas Fan。
sklearn.tree#
修复 修复了
tree.DecisionTreeClassifier、tree.DecisionTreeRegressor、tree.ExtraTreeClassifier和tree.ExtraTreeRegressor中的回归问题,即在版本 1.2 中min_sample_split=1时不再引发错误。 #25744 by Jérémie du Boisberranger。
sklearn.utils#
修复 修复了
utils.check_array中的一个错误,它现在使用 Array API 规范正确执行非有限值验证。 #25619 by Thomas Fan。修复
utils.multiclass.type_of_target可以将 pandas 可空数据类型标识为分类目标。 #25638 by Thomas Fan。
版本 1.2.1#
2023 年 1 月
更改的模型#
以下估计器和函数在用相同数据和参数拟合时,可能与先前版本产生不同的模型。这通常是由于建模逻辑(bug 修复或增强)或随机采样程序发生变化所致。
修复
decomposition.MiniBatchDictionaryLearning中拟合的组件可能有所不同。现在,充分统计量的在线更新正确地考虑了批次的大小。 #25354 by Jérémie du Boisberranger。修复 当使用预定义的字符串类别时,
preprocessing.OneHotEncoder的categories_属性现在始终包含一个object`s数组。以字节编码的预定义类别将不再适用于以字符串编码的X。 #25174 by Tim Head。
影响所有模块的更改#
修复 删除了内部使用邻域搜索方法的估计器的虚假警告。 #25129 by Julien Jerphanion。
修复 修复了使用
n_jobs > 1的估计器中忽略当前配置的错误。此错误是由于joblib辅助线程分派的任务触发的,因为sklearn.get_config曾访问空的线程本地配置,而不是从首次调用joblib.Parallel的线程可见的配置。 #25363 by Guillaume Lemaitre。
更新日志#
sklearn.base#
修复 修复了
BaseEstimator.__getstate__中的回归问题,该问题会阻止某些估计器在使用 Python 3.11 时被 pickle。 #25188 by Benjamin Bossan。修复 继承
base.TransformerMixin只会在类本身定义transform方法时包装它。 #25295 by Thomas Fan。
sklearn.datasets#
修复 修复了
datasets.fetch_openml中 liac-arff 和 pandas 解析器在分隔符后引入前导空格时存在的不一致性。ARFF 规范要求忽略前导空格。 #25312 by Guillaume Lemaitre。修复 修复了
datasets.fetch_openml中使用parser="pandas"时单引号和反斜杠转义字符未正确处理的错误。 #25511 by Guillaume Lemaitre。
sklearn.decomposition#
修复 修复了
decomposition.MiniBatchDictionaryLearning中的一个错误,该错误曾导致在不同大小的批次上调用partial_fit时,充分统计量的在线更新不正确。 #25354 by Jérémie du Boisberranger。修复
decomposition.DictionaryLearning更好地支持只读 NumPy 数组。特别是,当它与坐标下降算法一起使用时(即当fit_algorithm='cd'时),它更好地支持内存映射的大型数据集。 #25172 by Julien Jerphanion。
sklearn.ensemble#
sklearn.feature_extraction#
修复 当输入是字符串列表时,
feature_extraction.FeatureHasher会引发有信息的错误。 #25094 by Thomas Fan。
sklearn.linear_model#
修复 修复了
linear_model.SGDClassifier和linear_model.SGDRegressor中的回归问题,该问题导致它们在verbose参数设置为大于 0 的值时无法使用。 #25250 by Jérémie Du Boisberranger。
sklearn.manifold#
修复
manifold.TSNE现在在输出类型设置为 pandas 时可以正常工作。 #25370 by Tim Head。
sklearn.model_selection#
修复 在某些评分器失败的情况下,带有多指标评分的
model_selection.cross_validate现在返回正确的评分,而不是error_score值。 #23101 by András Simon and Thomas Fan。
sklearn.neural_network#
修复
neural_network.MLPClassifier和neural_network.MLPRegressor在拟合具有特征名称的数据时不再引发警告。 #24873 by Tim Head。修复 改进了
neural_network.MLPClassifier和neural_network.MLPRegressor中在调用partial_fit且early_stopping=True时的错误消息。 #25694 by Thomas Fan。
sklearn.preprocessing#
修复 当
check_inverse=True时,preprocessing.FunctionTransformer.inverse_transform正确支持全为数值的 DataFrame。 #25274 by Thomas Fan。修复 当
extrapolations="periodic"时,preprocessing.SplineTransformer.get_feature_names_out正确返回特征名称。 #25296 by Thomas Fan。
sklearn.tree#
sklearn.utils#
修复 恢复
utils.check_array对 pandas boolean 类型 Series 的行为。该类型被保留,而不是转换为float64.#25147 by Tim Head。API 变更
utils.fixes.delayed在 1.2.1 中已弃用,并将在 1.5 中移除。请改用utils.parallel.delayed并结合新引入的utils.parallel.Parallel以确保 scikit-learn 配置正确传播到工作进程。 #25363 by Guillaume Lemaitre。
版本 1.2.0#
2022 年 12 月
更改的模型#
以下估计器和函数在用相同数据和参数拟合时,可能与先前版本产生不同的模型。这通常是由于建模逻辑(bug 修复或增强)或随机采样程序发生变化所致。
增强功能 对于
cluster.SpectralClustering、manifold.SpectralEmbedding、cluster.spectral_clustering和manifold.spectral_embedding,当使用'amg'或'lobpcg'求解器时,默认的eigen_tol现在是None。此更改提高了求解器的数值稳定性,但可能导致模型不同。增强功能
linear_model.GammaRegressor、linear_model.PoissonRegressor和linear_model.TweedieRegressor使用 lbfgs 求解器可以达到更高的精度,特别是在tol设置为很小的值时。此外,verbose现在正确传播到 L-BFGS-B。 #23619 by Christian Lorentzen。增强功能
metrics.log_loss的默认值eps已从1e-15更改为"auto"。"auto"将eps设置为np.finfo(y_pred.dtype).eps。 #24354 by Safiuddin Khaja and gsiisg。修复 使
decomposition.SparsePCA中的components_符号具有确定性。 #23935 by Guillaume Lemaitre。修复
decomposition.FastICA中的components_符号可能不同。现在,它与所有 SVD 求解器保持一致且具有确定性。 #22527 by Meekail Zain and Thomas Fan。修复
linear_model._sgd_fast._plain_sgd中用于linear_model.SGDRegressor和linear_model.SGDClassifier的提前停止条件已更改。旧条件没有区分训练集和验证集,并具有过度缩放误差容限的效果。这已在 #23798 by Harsh Agrawal 中修复。修复 对于
model_selection.GridSearchCV和model_selection.RandomizedSearchCV,对应于 nan 分数的排名都将设置为最大可能的排名。 #24543 by Guillaume Lemaitre。API 变更
linear_model.ridge_regression、linear_model.Ridge和linear_model.RidgeClassifier的tol默认值已从1e-3更改为1e-4。 #24465 by Christian Lorentzen。
影响所有模块的更改#
重大特性 所有转换器都采用了
set_outputAPI。包含转换器的元估计器,例如pipeline.Pipeline或compose.ColumnTransformer也定义了set_output。有关详细信息,请参阅 SLEP018。 #23734 and #24699 by Thomas Fan。效率提升 针对密集 float32 数据集上的成对距离缩减的低级例程已重构。以下函数和估计器现在受益于硬件可扩展性和速度方面的性能改进
例如,
sklearn.neighbors.NearestNeighbors.kneighbors和sklearn.neighbors.NearestNeighbors.radius_neighbors在笔记本电脑上的速度分别比以前快 ×20 和 ×5。此外,这两个算法的实现现在适用于具有多核的机器,使其可用于包含数百万样本的数据集。
增强功能 通过利用 NumPy 的 SIMD 优化原语,所有估计器中的有限性检查(检测 NaN 和无限值)对于 float32 数据现在效率显着提高。 #23446 by Meekail Zain
增强功能 通过利用更高效的 stop-on-first second-pass 算法,所有估计器中的有限性检查(检测 NaN 和无限值)现在更快。 #23197 by Meekail Zain
增强功能 对于以下估计器,增加了对所有距离指标以及 float32 和 float64 数据集上密集和稀疏数据集对组合的支持,或者其性能得到了改进
#23604 and #23585 by Julien Jerphanion, Olivier Grisel, and Thomas Fan, #24556 by Vincent Maladière。
修复 系统地检查文档中代码示例中使用的数据集 tarball 的 sha256 摘要。 #24617 by Olivier Grisel and Thomas Fan。感谢 Sim4n6 的报告。
更新日志#
sklearn.base#
增强功能 引入了
base.ClassNamePrefixFeaturesOutMixin和base.ClassNamePrefixFeaturesOutMixinmixins,它们为常见的转换器用例定义了 get_feature_names_out。 #24688 by Thomas Fan。
sklearn.calibration#
API 变更 将
calibration.CalibratedClassifierCV中的base_estimator重命名为estimator,以提高可读性和一致性。参数base_estimator已弃用,并将在 1.4 中移除。 #22054 by Kevin Roice。
sklearn.cluster#
效率提升 带有
algorithm="lloyd"的cluster.KMeans现在速度更快,内存使用更少。 #24264 by Vincent Maladière。增强功能
cluster.OPTICS的predict和fit_predict方法现在接受稀疏数据类型的输入数据。 #14736 by Hunt Zhan, #20802 by Brandon Pokorny, and #22965 by Meekail Zain。增强功能
cluster.Birch现在保留numpy.float32输入的 dtype。 #22968 byMeekail Zain <micky774>。增强功能
cluster.KMeans和cluster.MiniBatchKMeans现在接受n_init的新选项'auto',在使用init='k-means++'时出于效率考虑将随机初始化次数更改为一次。这开始弃用这两个类中n_init的默认值,并且在 1.4 版本中它们的默认值都将更改为n_init='auto'。 #23038 by Meekail Zain。增强功能
cluster.SpectralClustering和cluster.spectral_clustering现在将eigen_tol参数传播到所有eigen_solver选项。包括一个新选项eigen_tol="auto",并开始弃用将默认值从eigen_tol=0更改为eigen_tol="auto"的计划,该更改将在 1.3 版本中进行。 #23210 by Meekail Zain。修复
cluster.KMeans现在在预测时支持只读属性。 #24258 by Thomas FanAPI 变更
cluster.AgglomerativeClustering的affinity属性现已弃用,并将在 v1.4 中重命名为metric。 #23470 by Meekail Zain。
sklearn.datasets#
增强功能 在
datasets.fetch_openml中引入新参数parser。parser="pandas"允许使用 CPU 和内存效率非常高的pandas.read_csv解析器来加载密集 ARFF 格式的数据集文件。可以传递parser="liac-arff"来使用旧的 LIAC 解析器。当parser="auto"时,密集数据集使用 "pandas" 加载,稀疏数据集使用 "liac-arff" 加载。目前,默认值为parser="liac-arff",并将在 1.4 版本中更改为parser="auto"#21938 by Guillaume Lemaitre。增强功能
datasets.dump_svmlight_file现在通过 Cython 实现加速,提供了 2-4 倍的加速。 #23127 by Meekail Zain增强功能 在
datasets.load_svmlight_file和datasets.load_svmlight_files中,现在允许使用 Path-like 对象(例如使用 pathlib 创建的对象)作为路径。 #19075 by Carlos Ramos Carreño。修复 确保
datasets.fetch_lfw_people和datasets.fetch_lfw_pairs根据slice_参数在内部裁剪图像。 #24951 by Guillaume Lemaitre。
sklearn.decomposition#
效率提升
decomposition.FastICA.fit在内存占用和运行时方面进行了优化。 #22268 by MohamedBsh。增强功能
decomposition.SparsePCA和decomposition.MiniBatchSparsePCA现在实现了inverse_transform函数。 #23905 by Guillaume Lemaitre。增强功能
decomposition.FastICA现在允许用户通过新的whiten_solver参数选择执行白化的方式,该参数支持svd和eigh。whiten_solver默认为svd,尽管在num_features > num_samples的情况下,eigh可能更快且内存效率更高。 #11860 by Pierre Ablin, #22527 by Meekail Zain and Thomas Fan。增强功能
decomposition.LatentDirichletAllocation现在保留numpy.float32输入的 dtype。 #24528 by Takeshi Oura and Jérémie du Boisberranger。修复 使
decomposition.SparsePCA中的components_符号具有确定性。 #23935 by Guillaume Lemaitre。API 变更
decomposition.MiniBatchSparsePCA的n_iter参数已弃用,并由参数max_iter、tol和max_no_improvement替换,以与decomposition.MiniBatchDictionaryLearning保持一致。n_iter将在 1.3 版本中移除。 #23726 by Guillaume Lemaitre。API 变更
decomposition.PCA的n_features_属性已弃用,取而代之的是n_features_in_,并将在 1.4 中移除。 #24421 by Kshitij Mathur。
sklearn.discriminant_analysis#
重大特性
discriminant_analysis.LinearDiscriminantAnalysis现在支持solver="svd"的 Array API。Array API 支持被视为实验性,并且可能在不遵守我们通常的滚动弃用周期策略的情况下发展。有关详细信息,请参阅 Array API 支持(实验性)。 #22554 by Thomas Fan。修复 仅在
fit中验证参数,而不是在discriminant_analysis.QuadraticDiscriminantAnalysis的__init__中验证参数。 #24218 by Stefanie Molin。
sklearn.ensemble#
重大特性
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor现在通过其构造函数的参数interaction_cst支持交互约束。 #21020 by Christian Lorentzen。使用交互约束还可以加快拟合速度。 #24856 by Christian Lorentzen。特性 向
ensemble.HistGradientBoostingClassifier添加class_weight。 #22014 by Thomas Fan。效率提升 通过避免数据复制来提高
ensemble.IsolationForest的运行时性能。 #23252 by Zhehao Liu。增强功能
ensemble.StackingClassifier现在接受任何类型的基本估计器。 #24538 by Guillem G Subies。增强功能 使得能够将
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor的categorical_features参数作为特征名称传递。 #24889 by Olivier Grisel。增强
ensemble.StackingClassifier现在支持多标签指示器目标 #24146,贡献者包括 Nicolas Peretti、Nestor Navarro、Nati Tomattis 和 Vincent Maladiere。增强
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor现在接受将其monotonic_cst参数作为字典传入,此前只支持类似数组的格式。这种字典的键是特征名称,值是-1、0或1,用于指定每个特征的单调性约束。 #24855,贡献者 Olivier Grisel。增强
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor的交互约束现在可以指定为字符串,用于两种常见情况:“no_interactions”(无交互)和“pairwise”(成对)交互。 #24849,贡献者 Tim Head。修复 修复了
ensemble.AdaBoostClassifier在拟合时样本权重非常小的情况下,特征重要性输出 NaN 的问题。 #20415,贡献者 Zhehao Liu。修复
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor在对编码为负值的类别进行预测时不再报错,而是将其视为“缺失类别”的成员。 #24283,贡献者 Thomas Fan。修复
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor在verbose>=1时,会打印计算直方图和寻找最佳分割的详细计时信息。以前缺失了根节点花费的时间,现在已包含在打印信息中。 #24894,贡献者 Christian Lorentzen。API 变更 以下类中的构造函数参数
base_estimator已重命名为estimator:ensemble.BaggingClassifier、ensemble.BaggingRegressor、ensemble.AdaBoostClassifier、ensemble.AdaBoostRegressor。base_estimator在 1.2 版本中已弃用,并将在 1.4 版本中移除。 #23819,贡献者 Adrian Trujillo 和 Edoardo Abati。API 变更 以下类中的拟合属性
base_estimator_已重命名为estimator_:ensemble.BaggingClassifier、ensemble.BaggingRegressor、ensemble.AdaBoostClassifier、ensemble.AdaBoostRegressor、ensemble.RandomForestClassifier、ensemble.RandomForestRegressor、ensemble.ExtraTreesClassifier、ensemble.ExtraTreesRegressor、ensemble.RandomTreesEmbedding、ensemble.IsolationForest。base_estimator_在 1.2 版本中已弃用,并将在 1.4 版本中移除。 #23819,贡献者 Adrian Trujillo 和 Edoardo Abati。
sklearn.feature_selection#
修复 修复了
feature_selection.mutual_info_regression和feature_selection.mutual_info_classif中的一个错误,即无论目标y是连续还是离散,X中的连续特征都应独立地缩放到单位方差。 #24747,贡献者 Guillaume Lemaitre。
sklearn.gaussian_process#
修复 修复了
gaussian_process.kernels.Matern在nu=0.5时对 PyPy(以及其他非 CPython 解释器)的梯度计算问题。 #24245,贡献者 Loïc Estève。修复
gaussian_process.GaussianProcessRegressor的fit方法在使用了自定义核函数且diag方法返回部分输入 X 的情况下,将不再修改输入 X。 #24405,贡献者 Omar Salman。
sklearn.impute#
增强
impute.SimpleImputer、impute.KNNImputer和impute.IterativeImputer中添加了keep_empty_features参数,防止在转换时移除只包含缺失值的特征。 #16695,贡献者 Vitor Santa Rosa。
sklearn.inspection#
主要功能 扩展了
inspection.partial_dependence和inspection.PartialDependenceDisplay,使其能够处理分类特征。 #18298,贡献者 Madhura Jayaratne 和 Guillaume Lemaitre。修复
inspection.DecisionBoundaryDisplay现在会在输入数据不是二维时引发错误。 #25077,贡献者 Arturo Amor。
sklearn.kernel_approximation#
增强
kernel_approximation.RBFSampler现在为numpy.float32输入保留 dtype。 #24317,贡献者Tim Head <betatim>。增强
kernel_approximation.SkewedChi2Sampler现在为numpy.float32输入保留 dtype。 #24350,贡献者 Rahil Parikh。增强
kernel_approximation.RBFSampler现在接受参数gamma的'scale'选项。 #24755,贡献者 Hleb Levitski。
sklearn.linear_model#
增强
linear_model.LogisticRegression、linear_model.LogisticRegressionCV、linear_model.GammaRegressor、linear_model.PoissonRegressor和linear_model.TweedieRegressor引入了新的求解器solver="newton-cholesky"。这是一个二阶(牛顿法)优化例程,使用 Hessian 矩阵的 Cholesky 分解。当n_samples >> n_features时,对于包含一些稀有类别级别的独热编码分类变量问题,"newton-cholesky"求解器被观察到比"lbfgs"求解器收敛更快,并达到更高精度的解。 #24637 和 #24767,贡献者 Christian Lorentzen。增强功能
linear_model.GammaRegressor、linear_model.PoissonRegressor和linear_model.TweedieRegressor使用 lbfgs 求解器可以达到更高的精度,特别是在tol设置为很小的值时。此外,verbose现在正确传播到 L-BFGS-B。 #23619 by Christian Lorentzen。修复
linear_model.SGDClassifier和linear_model.SGDRegressor在所有验证样本的样本权重都为零时会引发错误。 #23275,贡献者Zhehao Liu <MaxwellLZH>。修复
linear_model.SGDOneClassSVM不再在构造函数中执行参数验证。所有验证现在都在fit()和partial_fit()中处理。 #24433,贡献者 Yogendrasingh、Arisa Y. 和 Tim Head。修复 修复了在
linear_model.SGDRegressor和linear_model.SGDClassifier中启用提前停止时平均损失的计算问题。同时更新了相应的提前停止条件。 #23798,贡献者 Harsh Agrawal。API 变更
linear_model.QuantileRegressor中solver参数的默认值将从"interior-point"更改为"highs",该变更将在 1.4 版本中生效。 #23637,贡献者 Guillaume Lemaitre。API 变更
linear_model.LogisticRegression中penalty参数的字符串选项"none"已弃用,并将在 1.4 版本中移除。请改用None。 #23877,贡献者 Zhehao Liu。API 变更
linear_model.ridge_regression、linear_model.Ridge和linear_model.RidgeClassifier的tol默认值已从1e-3更改为1e-4。 #24465 by Christian Lorentzen。
sklearn.manifold#
功能 添加了在
manifold.MDS中使用归一化应力(normalized stress)的选项。通过将新参数normalize设置为True即可启用。 #10168,贡献者 Łukasz Borchmann;#12285,贡献者 Matthias Miltenberger;#13042,贡献者 Matthieu Parizy;#18094,贡献者 Roth E Conrad;#22562,贡献者 Meekail Zain。增强 向
manifold.SpectralEmbedding添加了eigen_tol参数。manifold.spectral_embedding和manifold.SpectralEmbedding现在都会将eigen_tol传播给所有eigen_solver选项。包括一个新的选项eigen_tol="auto",并开始弃用以在 1.3 版本中将默认值从eigen_tol=0更改为eigen_tol="auto"。 #23210,贡献者 Meekail Zain。增强
manifold.Isomap现在为np.float32输入保留 dtype。 #24714,贡献者 Rahil Parikh。API 变更
manifold.MDS和manifold.smacof中的normalized_stress参数添加了"auto"选项。请注意,normalized_stress仅对非度量 MDS 有效,因此"auto"选项在metric=False时启用normalized_stress,在metric=True时禁用它。"auto"将在 1.4 版本中成为normalized_stress的默认值。 #23834,贡献者 Meekail Zain。
sklearn.metrics#
功能
metrics.ConfusionMatrixDisplay.from_estimator、metrics.ConfusionMatrixDisplay.from_predictions和metrics.ConfusionMatrixDisplay.plot接受一个text_kw参数,该参数传递给 matplotlib 的text函数。 #24051,贡献者 Thomas Fan。功能 添加了
metrics.class_likelihood_ratios以计算从二元分类问题的混淆矩阵得出的正负似然比。 #22518,贡献者 Arturo Amor。功能 添加了
metrics.PredictionErrorDisplay,用于绘制残差与预测值以及实际值与预测值的关系图,以定性评估回归器的行为。显示可以通过类方法metrics.PredictionErrorDisplay.from_estimator和metrics.PredictionErrorDisplay.from_predictions创建。 #18020,贡献者 Guillaume Lemaitre。功能
metrics.roc_auc_score现在支持 One-vs-Rest 多分类情况下的微平均(average="micro")(multi_class="ovr")。 #24338,贡献者 Arturo Amor。增强 在
metrics.log_loss中为eps添加了"auto"选项。此选项将根据y_pred的数据类型自动设置eps值。此外,eps的默认值从1e-15更改为新的"auto"选项。 #24354,贡献者 Safiuddin Khaja 和 gsiisg。修复 允许将
csr_matrix作为metrics.label_ranking_average_precision_score指标的参数y_true的输入。 #23442,贡献者 Sean Atukorala。修复 当
y_true值包含负值时,metrics.ndcg_score现在会触发警告。用户仍然可以使用负值,但结果可能不在 0 到 1 之间。从 v1.4 开始,传入负值给y_true将引发错误。 #22710,贡献者 Conroy Trinh;#23461,贡献者 Meekail Zain。修复 当
eps=0时,metrics.log_loss现在对于边界处的预测(0 或 1)返回正确的值 0 或np.inf,而不是nan。它还接受整数输入。 #24365,贡献者 Christian Lorentzen。API 变更
metrics.pairwise.manhattan_distances的参数sum_over_features已弃用,并将在 1.4 版本中移除。 #24630,贡献者 Rushil Desai。
sklearn.model_selection#
功能 添加了类
model_selection.LearningCurveDisplay,可以轻松绘制由函数model_selection.learning_curve获得的学习曲线。 #24084,贡献者 Guillaume Lemaitre。修复 对于所有
SearchCV类和 scipy >= 1.10,对应于 nan 分数的排名被正确设置为最大可能排名,而不是np.iinfo(np.int32).min。 #24141,贡献者 Loïc Estève。修复 在
model_selection.HalvingGridSearchCV和model_selection.HalvingRandomSearchCV中,具有 NaN 分数的参数组合现在共享最低排名。 #24539,贡献者 Tim Head。修复 对于
model_selection.GridSearchCV和model_selection.RandomizedSearchCV,对应于 nan 分数的排名都将设置为最大可能的排名。 #24543 by Guillaume Lemaitre。
sklearn.multioutput#
功能 向类
multioutput.ClassifierChain和multioutput.RegressorChain添加了布尔值verbose标志。 #23977,贡献者 Eric Fiegel、Chiara Marmo、Lucy Liu 和 Guillaume Lemaitre。
sklearn.naive_bayes#
功能 为所有朴素贝叶斯分类器添加了
predict_joint_log_proba方法。 #23683,贡献者 Andrey Melnik。增强
naive_bayes.BernoulliNB、naive_bayes.ComplementNB、naive_bayes.CategoricalNB和naive_bayes.MultinomialNB添加了新参数force_alpha,允许用户将参数 alpha 设置为非常小的、大于或等于 0 的数字,而此前会自动更改为1e-10。 #16747,贡献者 @arka204;#18805,贡献者 @hongshaoyang;#22269,贡献者 Meekail Zain。
sklearn.neighbors#
功能 添加了新函数
neighbors.sort_graph_by_row_values,用于对 CSR 稀疏图进行排序,使得每行按值递增存储。这对于在各种估计器中使用预计算的稀疏距离矩阵时提高效率并避免EfficiencyWarning非常有用。 #23139,贡献者 Tom Dupre la Tour。效率
neighbors.NearestCentroid更快,需要更少的内存,因为它更好地利用 CPU 缓存来计算预测。 #24645,贡献者 Olivier Grisel。增强
neighbors.KernelDensity的带宽参数现在接受使用 Scott 和 Silverman 估计方法进行定义。 #10468,贡献者 Ruben;#22993,贡献者 Jovan Stojanovic。增强
neighbors.NeighborsBase现在接受 Minkowski 半度量(即当 \(0 < p < 1\) 时,metric="minkowski")用于algorithm="auto"或algorithm="brute"。 #24750,贡献者 Rudresh Veerkhare。修复
neighbors.NearestCentroid现在在拟合时而不是在预测时以低级错误消息失败,而是引发信息丰富的错误消息。 #23874,贡献者 Juan Gomez。修复
neighbors.KNeighborsTransformer和neighbors.RadiusNeighborsTransformer的默认值设置为n_jobs=None(而不是1)。 #24075,贡献者 Valentin Laurent。增强
neighbors.LocalOutlierFactor现在为numpy.float32输入保留 dtype。 #22665,贡献者 Julien Jerphanion。
sklearn.neural_network#
修复
neural_network.MLPClassifier和neural_network.MLPRegressor始终公开参数best_loss_、validation_scores_和best_validation_score_。best_loss_在early_stopping=True时设置为None,而validation_scores_和best_validation_score_在early_stopping=False时设置为None。 #24683,贡献者 Guillaume Lemaitre。
sklearn.pipeline#
增强
pipeline.FeatureUnion.get_feature_names_out现在可以在pipeline.FeatureUnion中的其中一个转换器是"passthrough"时使用。 #24058,贡献者 Diederik Perdok。增强
pipeline.FeatureUnion类现在有一个named_transformers属性,用于按名称访问转换器。 #20331,贡献者 Christopher Flynn。
sklearn.preprocessing#
增强
preprocessing.FunctionTransformer现在无论validate参数如何,都会尝试设置n_features_in_和feature_names_in_。 #23993,贡献者 Thomas Fan。修复
preprocessing.LabelEncoder在transform中正确编码 NaNs。 #22629,贡献者 Thomas Fan。API 变更
preprocessing.OneHotEncoder的参数sparse已弃用,并将在 1.4 版本中移除。请改用sparse_output。 #24412,贡献者 Rushil Desai。
sklearn.svm#
API 变更
svm.NuSVR、svm.SVR和svm.OneClassSVM的class_weight_属性已弃用。 #22898,贡献者 Meekail Zain。
sklearn.tree#
增强
tree.plot_tree和tree.export_graphviz现在使用小写x[i]来表示特征i。 #23480,贡献者 Thomas Fan。
sklearn.utils#
功能 新模块公开了用于发现 scikit-learn 中估计器(即
utils.discovery.all_estimators)、显示(即utils.discovery.all_displays)和函数(即utils.discovery.all_functions)的开发工具。 #21469,贡献者 Guillaume Lemaitre。增强
utils.extmath.randomized_svd现在接受一个参数lapack_svd_driver,用于指定随机 SVD 算法内部确定性 SVD 所使用的 lapack 驱动程序。 #20617,贡献者 Srinath Kailasa。增强
utils.validation.column_or_1d现在接受一个dtype参数来指定y的 dtype。 #22629,贡献者 Thomas Fan。增强
utils.extmath.cartesian现在接受具有不同dtype的数组,并将输出转换为最宽容的dtype。 #25067,贡献者 Guillaume Lemaitre。修复
utils.multiclass.type_of_target现在正确处理稀疏矩阵。 #14862,贡献者 Léonard Binet。修复 当估计器类是
get_params中的值时,HTML 表示不再出错。 #24512,贡献者 Thomas Fan。修复
utils.estimator_checks.check_estimator现在正确考虑了requires_positive_X标签。 #24667,贡献者 Thomas Fan。修复
utils.check_array现在支持带有pd.NA的 Pandas Series,通过引发更好的错误消息或返回兼容的ndarray。 #25080,贡献者 Thomas Fan。API 变更
utils.extmath.density的额外关键字参数已弃用,并将在 1.4 版本中移除。 #24523,贡献者 Mia Bajic。
代码和文档贡献者
感谢自版本 1.1 以来为项目的维护和改进做出贡献的所有人,包括
2357juan, 3lLobo, Adam J. Stewart, Adam Kania, Adam Li, Aditya Anulekh, Admir Demiraj, adoublet, Adrin Jalali, Ahmedbgh, Aiko, Akshita Prasanth, Ala-Na, Alessandro Miola, Alex, Alexandr, Alexandre Perez-Lebel, Alex Buzenet, Ali H. El-Kassas, aman kumar, Amit Bera, András Simon, Andreas Grivas, Andreas Mueller, Andrew Wang, angela-maennel, Aniket Shirsat, Anthony22-dev, Antony Lee, anupam, Apostolos Tsetoglou, Aravindh R, Artur Hermano, Arturo Amor, as-90, ashah002, Ashwin Mathur, avm19, Azaria Gebremichael, b0rxington, Badr MOUFAD, Bardiya Ak, Bartłomiej Gońda, BdeGraaff, Benjamin Bossan, Benjamin Carter, berkecanrizai, Bernd Fritzke, Bhoomika, Biswaroop Mitra, Brandon TH Chen, Brett Cannon, Bsh, cache-missing, carlo, Carlos Ramos Carreño, ceh, chalulu, Changyao Chen, Charles Zablit, Chiara Marmo, Christian Lorentzen, Christian Ritter, Christian Veenhuis, christianwaldmann, Christine P. Chai, Claudio Salvatore Arcidiacono, Clément Verrier, crispinlogan, Da-Lan, DanGonite57, Daniela Fernandes, DanielGaerber, darioka, Darren Nguyen, davidblnc, david-cortes, David Gilbertson, David Poznik, Dayne, Dea María Léon, Denis, Dev Khant, Dhanshree Arora, Diadochokinetic, diederikwp, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, drewhogg, Duarte OC, Dwight Lindquist, Eden Brekke, Edern, Edoardo Abati, Eleanore Denies, EliaSchiavon, Emir, ErmolaevPA, Fabrizio Damicelli, fcharras, Felipe Siola, Flynn, francesco-tuveri, Franck Charras, ftorres16, Gael Varoquaux, Geevarghese George, genvalen, GeorgiaMayDay, Gianr Lazz, Hleb Levitski, Glòria Macià Muñoz, Guillaume Lemaitre, Guillem García Subies, Guitared, gunesbayir, Haesun Park, Hansin Ahuja, Hao Chun Chang, Harsh Agrawal, harshit5674, hasan-yaman, henrymooresc, Henry Sorsky, Hristo Vrigazov, htsedebenham, humahn, i-aki-y, Ian Thompson, Ido M, Iglesys, Iliya Zhechev, Irene, ivanllt, Ivan Sedykh, Jack McIvor, jakirkham, JanFidor, Jason G, Jérémie du Boisberranger, Jiten Sidhpura, jkarolczak, João David, JohnathanPi, John Koumentis, John P, John Pangas, johnthagen, Jordan Fleming, Joshua Choo Yun Keat, Jovan Stojanovic, Juan Carlos Alfaro Jiménez, juanfe88, Juan Felipe Arias, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kanishk Sachdev, Kanissh, Kaushik Amar Das, Kendall, Kenneth Prabakaran, Kento Nozawa, kernc, Kevin Roice, Kian Eliasi, Kilian Kluge, Kilian Lieret, Kirandevraj, Kraig, krishna kumar, krishna vamsi, Kshitij Kapadni, Kshitij Mathur, Lauren Burke, Léonard Binet, lingyi1110, Lisa Casino, Logan Thomas, Loic Esteve, Luciano Mantovani, Lucy Liu, Maascha, Madhura Jayaratne, madinak, Maksym, Malte S. Kurz, Mansi Agrawal, Marco Edward Gorelli, Marco Wurps, Maren Westermann, Maria Telenczuk, Mario Kostelac, martin-kokos, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, mauroantonioserrano, Max Halford, Maxi Marufo, maximeSaur, Maxim Smolskiy, Maxwell, m. bou, Meekail Zain, Mehgarg, mehmetcanakbay, Mia Bajić, Michael Flaks, Michael Hornstein, Michel de Ruiter, Michelle Paradis, Mikhail Iljin, Misa Ogura, Moritz Wilksch, mrastgoo, Naipawat Poolsawat, Naoise Holohan, Nass, Nathan Jacobi, Nawazish Alam, Nguyễn Văn Diễn, Nicola Fanelli, Nihal Thukarama Rao, Nikita Jare, nima10khodaveisi, Nima Sarajpoor, nitinramvelraj, NNLNR, npache, Nwanna-Joseph, Nymark Kho, o-holman, Olivier Grisel, Olle Lukowski, Omar Hassoun, Omar Salman, osman tamer, ouss1508, Oyindamola Olatunji, PAB, Pandata, partev, Paulo Sergio Soares, Petar Mlinarić, Peter Jansson, Peter Steinbach, Philipp Jung, Piet Brömmel, Pooja M, Pooja Subramaniam, priyam kakati, puhuk, Rachel Freeland, Rachit Keerti Das, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Ravi Makhija, Rehan Guha, Reshama Shaikh, Richard Klima, Rob Crockett, Robert Hommes, Robert Juergens, Robin Lenz, Rocco Meli, Roman4oo, Ross Barnowski, Rowan Mankoo, Rudresh Veerkhare, Rushil Desai, Sabri Monaf Sabri, Safikh, Safiuddin Khaja, Salahuddin, Sam Adam Day, Sandra Yojana Meneses, Sandro Ephrem, Sangam, SangamSwadik, SANJAI_3, SarahRemus, Sashka Warner, SavkoMax, Scott Gigante, Scott Gustafson, Sean Atukorala, sec65, SELEE, seljaks, Shady el Gewily, Shane, shellyfung, Shinsuke Mori, Shiva chauhan, Shoaib Khan, Shogo Hida, Shrankhla Srivastava, Shuangchi He, Simon, sonnivs, Sortofamudkip, Srinath Kailasa, Stanislav (Stanley) Modrak, Stefanie Molin, stellalin7, Stéphane Collot, Steven Van Vaerenbergh, Steve Schmerler, Sven Stehle, Tabea Kossen, TheDevPanda, the-syd-sre, Thijs van Weezel, Thomas Bonald, Thomas Germer, Thomas J. Fan, Ti-Ion, Tim Head, Timofei Kornev, toastedyeast, Tobias Pitters, Tom Dupré la Tour, tomiock, Tom Mathews, Tom McTiernan, tspeng, Tyler Egashira, Valentin Laurent, Varun Jain, Vera Komeyer, Vicente Reyes-Puerta, Vinayak Mehta, Vincent M, Vishal, Vyom Pathak, wattai, wchathura, WEN Hao, William M, x110, Xiao Yuan, Xunius, yanhong-zhao-ef, Yusuf Raji, Z Adil Khwaja, zeeshan lone