版本 0.24#
有关此版本主要亮点的简要说明,请参阅scikit-learn 0.24 发布亮点。
更新日志图例
主要特性 之前无法实现的重要功能。
特性 之前无法实现的功能。
效率 现有功能现在可能不需要那么多计算或内存。
增强 其他一些小的改进。
修复 之前未按文档说明或未按合理预期工作的问题现在应该可以工作了。
API 变更 未来需要更改代码以达到相同效果;或未来将删除某个功能。
版本 0.24.2#
2021 年 4 月
更新日志#
sklearn.compose#
修复
compose.ColumnTransformer.get_feature_names不再对列选择为空的转换器调用get_feature_names。#19579 by Thomas Fan。
sklearn.cross_decomposition#
修复 修复了
cross_decomposition.CCA中的回归问题。#19646 by Thomas Fan。修复
cross_decomposition.PLSRegression对恒定 y 残差发出警告,而不是引发StopIteration错误。#19922 by Thomas Fan。
sklearn.decomposition#
修复 修复了
decomposition.KernelPCA的inverse_transform中的一个错误。#19732 by Kei Ishikawa。
sklearn.ensemble#
修复 修复了
ensemble.HistGradientBoostingRegressor的fit方法在sample_weight参数和least_absolute_deviation损失函数下存在的错误。#19407 by Vadim Ushtanit。
sklearn.feature_extraction#
修复 修复了一个错误,使得
feature_extraction.DictVectorizer在sparse=False时支持一个类别的多个字符串。#19982 by Guillaume Lemaitre。
sklearn.gaussian_process#
修复 在
gaussian_process.GaussianProcessRegressor设置为输出标准差时,避免显式形成逆协方差矩阵。对于某些协方差矩阵,此逆矩阵的计算不稳定。调用 Cholesky 求解器可以缓解此计算问题。#19939 by Ian Halvic。修复 在
gaussian_process.GaussianProcessRegressor中缩放恒定目标时,避免除以零。之前由于标准差为 0 导致。现在,会检测到这种情况并将标准差设置为 1,从而避免除以零并避免标准化目标中出现 NaN 值。#19703 by @sobkevich、Boris Villazón-Terrazas 和 Alexandr Fonari。
sklearn.linear_model#
修复 : 修复了
linear_model.LogisticRegression中的一个错误:sample_weight对象不再被修改。#19182 by Yosuke KOBAYASHI。
sklearn.metrics#
修复
metrics.top_k_accuracy_score现在支持在y_true中只出现两个类别且所有类别都在labels中指定的多类别问题。#19721 by Joris Clement。
sklearn.model_selection#
修复
model_selection.RandomizedSearchCV和model_selection.GridSearchCV现在正确显示单指标和 verbose > 2 时的分数。#19659 by Thomas Fan。修复
model_selection.HalvingRandomSearchCV和model_selection.HalvingGridSearchCV的cv_results_属性中的某些值未能正确转换为 numpy 数组。#19211 by Nicolas Hug。修复 逐次折半参数搜索(
model_selection.HalvingGridSearchCV和model_selection.HalvingRandomSearchCV)的fit方法现在正确处理groups参数。#19847 by Xiaoyu Chai。
sklearn.multioutput#
修复
multioutput.MultiOutputRegressor现在适用于在拟合期间动态定义predict的估计器,例如ensemble.StackingRegressor。#19308 by Thomas Fan。
sklearn.preprocessing#
修复 验证
preprocessing.OrdinalEncoder中的构造函数参数handle_unknown,只允许'error'和'use_encoded_value'策略。#19234 byGuillaume Lemaitre <glemaitre>。修复 修复了编码器类别 dtype='S' 的问题,涉及
preprocessing.OneHotEncoder和preprocessing.OrdinalEncoder。#19727 by Andrew Delong。修复
preprocessing.OrdinalEncoder.transform正确处理字符串 dtype 的未知值。#19888 by Thomas Fan。修复
preprocessing.OneHotEncoder.fit不再更改drop参数。#19924 by Thomas Fan。
sklearn.semi_supervised#
修复 避免在
LabelPropagation中的标签传播期间出现 NaN。#19271 by Zhaowei Wang。
sklearn.tree#
修复 修复了
tree.BaseDecisionTree的fit中的一个错误,该错误在某些条件下会导致段错误。fit现在会对Criterion对象进行深拷贝,以防止共享并发访问。#19580 by Samuel Brice、Alex Adamson 和 Wil Yegelwel。
sklearn.utils#
修复 通过为 HTML 表示提供 CSS ID,更好地包含了
utils.estimator_html_repr提供的 CSS。#19417 by Thomas Fan。
版本 0.24.1#
2021 年 1 月
打包#
由于 libomp,0.24.0 scikit-learn wheel 不适用于 macOS <1.15。用于构建 wheel 的 libomp 版本对于旧版 macOS 来说太新了。这个问题已在 0.24.1 scikit-learn wheel 中修复。发布在 PyPI.org 上的 scikit-learn wheel 现在正式支持 macOS 10.13 及更高版本。
更新日志#
sklearn.metrics#
修复 修复了在 NumPy 1.20+ 中,
metrics.adjusted_mutual_info_score和metrics.mutual_info_score中可能出现的数值稳定性错误。#19179 by Thomas Fan。
sklearn.semi_supervised#
修复
semi_supervised.SelfTrainingClassifier现在接受元估计器(例如ensemble.StackingClassifier)。该估计器的验证是在拟合的估计器上完成的,一旦我们知道predict_proba方法的存在。#19126 by Guillaume Lemaitre。
版本 0.24.0#
2020 年 12 月
更改的模型#
以下估计器和函数在用相同数据和参数拟合时,可能会产生与上一个版本不同的模型。这通常是由于建模逻辑的更改(错误修复或增强)或随机采样过程的更改而发生的。
修复 当核函数具有小的正特征值时,
decomposition.KernelPCA在 32 位和 64 位数据之间的行为现在更加一致。修复
decomposition.TruncatedSVD通过公开random_state参数变得确定性。修复 当
penalty='elasticnet'时,linear_model.Perceptron的问题。修复
cluster.KMeans中心初始化随机采样过程的变更。
详细信息列在下面的更新日志中。
(尽管我们正在努力通过提供此信息更好地告知用户,但我们不能保证此列表是完整的。)
更新日志#
sklearn.base#
修复
base.BaseEstimator.get_params现在会在无法作为实例属性检索参数时引发AttributeError。以前它会返回None。#17448 by Juan Carlos Alfaro Jiménez。
sklearn.calibration#
效率
calibration.CalibratedClassifierCV.fit现在通过使用参数n_jobs支持joblib.Parallel进行并行化。#17107 by Julien Jerphanion。增强 允许
calibration.CalibratedClassifierCV与预拟合的pipeline.Pipeline一起使用,即使数据X在开始时不是类数组、稀疏矩阵或数据帧。#17546 by Lucy Liu。增强 为
calibration.CalibratedClassifierCV添加了ensemble参数,该参数支持通过校准器集成(当前方法)或仅使用所有数据的一个校准器实现校准(类似于sklearn.svm估计器中带有probabilities=True参数的内置功能)。#17856 by Lucy Liu 和 Andrea Esuli。
sklearn.cluster#
增强
cluster.AgglomerativeClustering有一个新参数compute_distances。当设置为True时,即使不使用参数distance_threshold,也会计算集群之间的距离并存储在distances_属性中。这个新参数对于生成树状图可视化很有用,但会引入计算和内存开销。#17984 by Michael Riedmann、Emilie Delattre 和 Francesco Casalegno。增强
cluster.SpectralClustering和cluster.spectral_clustering有一个新的关键字参数verbose。当设置为True时,将显示额外的消息,这有助于调试。#18052 by Sean O. Stalley。增强 将
cluster.kmeans_plusplus添加为公共函数。现在可以单独调用 KMeans++ 初始化来生成初始集群质心。#17937 by @g-walshAPI 变更
cluster.MiniBatchKMeans属性counts_和init_size_已被弃用,并将在 1.1 版本(0.26 版的重命名)中删除。#17864 by Jérémie du Boisberranger。
sklearn.compose#
修复
compose.ColumnTransformer将跳过列选择器为 False 布尔值列表的转换器。#17616 by Thomas Fan。修复
compose.ColumnTransformer现在在图示中显示剩余部分。#18167 by Thomas Fan。修复
compose.ColumnTransformer遵循弃用周期,通过引发错误而不是警告来强制要求fit和transform之间列名的严格计数和顺序。#18256 by Madhura Jayratne。
sklearn.covariance#
API 变更
covariance.GraphicalLassoCV中的cv_alphas_已弃用,取而代之的是cv_results_['alphas'];grid_scores_已弃用,取而代之的是cv_results_中的分段分数。cv_alphas_和grid_scores_将在 1.1 版本(0.26 版的重命名)中删除。#16392 by Thomas Fan。
sklearn.cross_decomposition#
修复 修复了
cross_decomposition.PLSSVD中的一个错误,该错误有时会以重要性倒序返回分量。#17095 by Nicolas Hug。修复 修复了
cross_decomposition.PLSSVD、cross_decomposition.CCA和cross_decomposition.PLSCanonical中的一个错误,当训练数据是单目标时,该错误会导致est.transform(Y)的预测不正确。#17095 by Nicolas Hug。修复 提高了
cross_decomposition.CCA的稳定性。#18746 by Thomas Fan。API 变更
n_components参数的界限现在被限制对于
cross_decomposition.PLSSVD、cross_decomposition.CCA和cross_decomposition.PLSCanonical,限制在[1, min(n_samples, n_features, n_targets)]。对于
cross_decomposition.PLSRegression,限制在[1, n_features]。
将在 1.1 版本(0.26 版的重命名)中引发错误。#17095 by Nicolas Hug。
API 变更 对于
cross_decomposition.PLSSVD、cross_decomposition.CCA和cross_decomposition.PLSCanonical,属性x_scores_和y_scores_已被弃用,并将在 1.1 版本(0.26 版的重命名)中删除。它们可以通过对训练数据调用transform来检索。属性norm_y_weights也将被删除。#17095 by Nicolas Hug。API 变更 对于
cross_decomposition.PLSRegression、cross_decomposition.PLSCanonical、cross_decomposition.CCA和cross_decomposition.PLSSVD,属性x_mean_、y_mean_、x_std_和y_std_已被弃用,并将在 1.1 版本(0.26 版的重命名)中删除。#18768 by Maren Westermann。修复
decomposition.TruncatedSVD通过使用random_state变得确定性。它控制底层 ARPACK 求解器中权重的初始化。:pr:` #18302` by Gaurav Desai 和 Ivan Panico。
sklearn.datasets#
特性
datasets.fetch_openml现在验证下载或缓存的 arff 文件的 md5 校验和,以确保数据完整性。#14800 by Shashank Singh 和 Joel Nothman。增强
datasets.fetch_openml现在允许参数as_frame设置为“auto”,这会尝试将返回的数据转换为 pandas DataFrame,除非数据是稀疏的。#17396 by Jiaxiang。增强
datasets.fetch_covtype现在支持可选参数as_frame;当设置为 True 时,返回的 Bunch 对象的data和frame成员是 pandas DataFrame,target成员是 pandas Series。#17491 by Alex Liang。增强
datasets.fetch_kddcup99现在支持可选参数as_frame;当设置为 True 时,返回的 Bunch 对象的data和frame成员是 pandas DataFrame,target成员是 pandas Series。#18280 by Alex Liang 和 Guillaume Lemaitre。增强
datasets.fetch_20newsgroups_vectorized现在支持通过设置as_frame=True来加载为 pandasDataFrame。#17499 by Brigitta Sipőcz 和 Guillaume Lemaitre。API 变更
datasets.fetch_openml中as_frame的默认值从 False 更改为“auto”。#17610 by Jiaxiang。
sklearn.decomposition#
API 变更 对于
decomposition.NMF,当“init=None”且 n_components <= min(n_samples, n_features) 时,init值将从'nndsvd'更改为'nndsvda',此更改将在 1.1 版本(0.26 版的重命名)中生效。#18525 by Chiara Marmo。增强
decomposition.FactorAnalysis现在支持可选参数rotation,它可以取值None、'varimax'或'quartimax'。#11064 by Jona Sassenhagen。增强
decomposition.NMF现在支持可选参数regularization,它可以取值None、“components”、“transformation”或“both”,与decomposition.NMF.non_negative_factorization一致。#17414 by Bharat Raghunathan。修复
decomposition.KernelPCA在核函数具有小的正特征值时,在 32 位和 64 位数据输入之间的行为现在更加一致。对于 32 位数据,小的正特征值之前没有正确丢弃。#18149 by Sylvain Marié。修复 修复
decomposition.SparseCoder以使其遵循 scikit-learn API 并支持克隆。属性components_在 0.24 中已弃用,并将在 1.1 版本(0.26 版的重命名)中删除。此属性与dictionary属性和构造函数参数重复。#17679 by Xavier Dupré。修复
decomposition.TruncatedSVD.fit_transform返回的结果与先执行decomposition.TruncatedSVD.fit再执行decomposition.TruncatedSVD.transform的结果一致。#18528 by Albert Villanova del Moral 和 Ruifeng Zheng。
sklearn.discriminant_analysis#
增强
discriminant_analysis.LinearDiscriminantAnalysis现在可以通过设置covariance_estimator参数来使用自定义协方差估计。#14446 by Hugo Richard。
sklearn.ensemble#
主要特性
ensemble.HistGradientBoostingRegressor和ensemble.HistGradientBoostingClassifier现在通过categorical_features参数原生支持类别特征。#18394 by Nicolas Hug and Thomas Fan。特性
ensemble.HistGradientBoostingRegressor和ensemble.HistGradientBoostingClassifier现在支持staged_predict方法,该方法允许监控每个阶段。#16985 by Hao Chun Chang。效率 打破
ensemble.HistGradientBoostingRegressor和ensemble.HistGradientBoostingClassifier内部使用的树节点中的循环引用,以允许及时垃圾回收大型中间数据结构并改善fit中的内存使用。#18334 by Olivier Grisel Nicolas Hug、Thomas Fan 和 Andreas Müller。效率
ensemble.HistGradientBoostingRegressor和ensemble.HistGradientBoostingClassifier中的直方图初始化现在并行完成,这提高了在多核机器上构建大量节点的问的速度。#18341 by Olivier Grisel、Nicolas Hug、Thomas Fan 和 Egor Smirnov。修复 修复了
ensemble.HistGradientBoostingRegressor和ensemble.HistGradientBoostingClassifier中的一个错误,该错误现在可以在predict中接受uint8dtype 的数据。#18410 by Nicolas Hug。API 变更 参数
n_classes_在ensemble.GradientBoostingRegressor中已弃用,并返回1。#17702 by Simona Maggio。API 变更 平均绝对误差('mae')现在在
ensemble.GradientBoostingRegressor和ensemble.GradientBoostingClassifier中,对于参数criterion已被弃用。#18326 by Madhura Jayaratne。
sklearn.exceptions#
API 变更
exceptions.ChangedBehaviorWarning和exceptions.NonBLASDotWarning已弃用,并将在 1.1 版本(0.26 版的重命名)中删除。#17804 by Adrin Jalali。
sklearn.feature_extraction#
增强
feature_extraction.DictVectorizer接受一个类别特征的多个值。#17367 by Peng Yu 和 Chiara Marmo。修复 如果提供了捕获多个组的自定义标记模式,
feature_extraction.text.CountVectorizer会引发问题。#15427 by Gangesh Gudmalwar 和 Erin R Hoffman。
sklearn.feature_selection#
特性 添加了
feature_selection.SequentialFeatureSelector,它实现了前向和后向顺序特征选择。#6545 by Sebastian Raschka 和 #17159 by Nicolas Hug。特性
feature_selection.RFE、feature_selection.RFECV和feature_selection.SelectFromModel添加了一个新参数importance_getter,允许用户指定属性名称/路径或callable以从估计器中提取特征重要性。#15361 by Venkatachalam N。效率 通过调用
neighbors.KDTree来计算最近邻,减少了feature_selection.mutual_info_classif和feature_selection.mutual_info_regression的内存占用。#17878 by Noel Rogers。增强
feature_selection.RFE支持将n_features_to_select的数量指定为浮点数,表示要选择的特征百分比。#17090 by Lisa Schwetlick and Marija Vlajic Wheeler。
sklearn.gaussian_process#
增强 拟合高斯过程后会调用新方法
gaussian_process.kernel._check_bounds_params,如果超参数的界限太紧,则会引发ConvergenceWarning。#12638 by Sylvain Lannuzel。
sklearn.impute#
新功能
impute.SimpleImputer现在支持字符串列表,当strategy='most_frequent'或strategy='constant'时。 #17526 由 Ayako YAGI 和 Juan Carlos Alfaro Jiménez 贡献。新功能 添加了方法
impute.SimpleImputer.inverse_transform,可在实例化时,通过add_indicator=True将其恢复为原始数据。 #17612 由 Srimukh Sripada 贡献。修复 将
impute.IterativeImputer中min_value和max_value参数的默认值分别替换为-np.inf和np.inf,而不是None。然而,该类的行为没有改变,因为None已经默认使用这些值。 #16493 由 Darshan N 贡献。修复
impute.IterativeImputer将不再尝试设置估计器的random_state属性,从而允许与更多外部类一起使用。 #15636 由 David Cortes 贡献。效率
impute.SimpleImputer现在在使用objectdtype 数组时速度更快。当SimpleImputer中strategy='most_frequent'时。 #18987 由 David Katz 贡献。
sklearn.inspection#
新功能
inspection.partial_dependence和inspection.plot_partial_dependence现在支持计算和绘制由kind参数控制的个体条件期望(ICE)曲线。 #16619 由 Madhura Jayratne 贡献。新功能 为
inspection.permutation_importance添加了sample_weight参数。 #16906 由 Roei Kahny 贡献。API 变更 在
inspection.PartialDependenceDisplay.plot中,位置参数已被弃用,并将在 1.1 版本(0.26 版本的重命名)中报错。 #18293 由 Thomas Fan 贡献。
sklearn.isotonic#
新功能 公开已拟合属性
X_thresholds_和y_thresholds_,它们保存了isotonic.IsotonicRegression实例的去重插值阈值,用于模型检查目的。 #16289 由 Masashi Kishimoto 和 Olivier Grisel 贡献。改进
isotonic.IsotonicRegression现在接受具有 1 个特征的 2D 数组作为输入数组。 #17379 由 Jiaxiang 贡献。修复 在确定重复的 X 值时增加容差,以防止
isotonic.IsotonicRegression预测出无穷大值。 #18639 由 Lucy Liu 贡献。
sklearn.kernel_approximation#
新功能 添加了类
kernel_approximation.PolynomialCountSketch,它实现了张量草图(Tensor Sketch)算法,用于多项式核特征映射近似。 #13003 由 Daniel López Sánchez 贡献。效率
kernel_approximation.Nystroem现在支持通过joblib.Parallel使用参数n_jobs进行并行化。 #18545 由 Laurenz Reitsam 贡献。
sklearn.linear_model#
新功能
linear_model.LinearRegression现在当positive设置为True时,强制系数全为正。 #17578 由 Joseph Knox、Nelle Varoquaux 和 Chiara Marmo 贡献。改进
linear_model.RidgeCV现在支持通过设置alpha_per_target=True来为每个目标单独找到一个最优正则化值alpha。这仅在使用默认的高效留一交叉验证方案cv=None时才支持。 #6624 由 Marijn van Vliet 贡献。修复 修复了
linear_model.TheilSenRegressor中的错误,在该错误中,当fit_intercept=False且在拟合过程中只有一个特征时,predict和score会失败。 #18121 由 Thomas Fan 贡献。修复 修复了
linear_model.ARDRegression中的错误,在该错误中,当normalize=True和return_std=True时,由于X_offset_和X_scale_未定义,predict会引发错误。 #18607 由 fhaselbeck 贡献。修复 在
linear_model.Perceptron中添加了缺失的l1_ratio参数,用于penalty='elasticnet'时。这使得默认值从 0 变为 0.15。 #18622 由 Haesun Park 贡献。
sklearn.manifold#
效率 修复了 #10493。改进了局部线性嵌入(LLE),解决了在使用大输入时引发
MemoryError异常的问题。 #17997 由 Bertrand Maisonneuve 贡献。改进 为
manifold.TSNE添加了square_distances参数,该参数在弃用旧版平方行为期间提供了向后兼容性。距离将在 1.1 版本(0.26 版本的重命名)中默认平方,此参数将在 1.3 版本中移除。 #17662 由 Joshua Newton 贡献。修复
manifold.MDS现在正确设置了其_pairwise属性。 #18278 由 Thomas Fan 贡献。
sklearn.metrics#
新功能 添加了
metrics.cluster.pair_confusion_matrix,实现了从两个聚类中元素对产生的混淆矩阵。 #17412 由 Uwe F Mayer 贡献。新功能 新指标
metrics.top_k_accuracy_score。它是metrics.top_k_accuracy_score的泛化,不同之处在于,只要真实标签与k个最高预测分数中的一个相关联,预测就被视为正确。metrics.accuracy_score是k = 1的特例。 #16625 由 Geoffrey Bolmier 贡献。新功能 添加了
metrics.det_curve,用于计算检测错误权衡(DET)曲线分类指标。 #10591 由 Jeremy Karnowski 和 Daniel Mohns 贡献。新功能 添加了
metrics.plot_det_curve和metrics.DetCurveDisplay,以方便绘制 DET 曲线。 #18176 由 Guillaume Lemaitre 贡献。新功能 添加了
metrics.mean_absolute_percentage_error指标以及回归问题的相关评分器。 #10708 通过 PR #15007 由 Ashutosh Hathidara 修复。该评分器和一些实际测试用例取自 PR #10711,由 Mohamed Ali Jamaoui 提供。新功能 添加了
metrics.rand_score,实现了(未调整的)兰德指数。 #17412 由 Uwe F Mayer 贡献。新功能
metrics.plot_confusion_matrix现在支持通过设置colorbar=False来使 matplotlib 绘图中的颜色条变为可选。 #17192 由 Avi Gupta 贡献改进 为
metrics.median_absolute_error添加了sample_weight参数。 #17225 由 Lucy Liu 贡献。改进 在
metrics.plot_precision_recall_curve中添加了pos_label参数,用于指定在计算精确率和召回率统计数据时要使用的正类别。 #17569 由 Guillaume Lemaitre 贡献。改进 在
metrics.plot_roc_curve中添加了pos_label参数,用于指定在计算 ROC AUC 统计数据时要使用的正类别。 #17651 由 Clara Matos 贡献。修复 修复了
metrics.classification_report中的错误,当针对长度为 0 的值调用并使用output_dict=True时,该错误会引发 AttributeError。 #17777 由 Shubhanshu Mishra 贡献。修复 修复了
metrics.classification_report中的错误,当针对长度为 0 的值调用并使用output_dict=True时,该错误会引发 AttributeError。 #17777 由 Shubhanshu Mishra 贡献。修复 修复了
metrics.jaccard_score中的错误,当在没有真实或预测样本的情况下调用时,它会推荐zero_division参数。 #17826 由 Richard Decal 和 Joseph Willard 贡献。修复 修复了
metrics.hinge_loss中的错误,即当y_true缺少在labels参数中显式提供的某些标签时会发生错误。 #17935 由 Cary Goltermann 贡献。修复 修复了接受 pos_label 参数并从
decision_function或predict_proba返回的值计算指标的评分器。以前,当 pos_label 与classifier.classes_[1]不对应时,它们会返回错误值。这在直接使用字符串标记的目标类训练分类器时尤为重要。 #18114 由 Guillaume Lemaitre 贡献。修复 修复了
metrics.plot_confusion_matrix中的错误,即当y_true包含分类器以前未见的标签,而labels和display_labels参数设置为None时,会发生错误。 #18405 由 Thomas J. Fan 和 Yakov Pchelintsev 贡献。
sklearn.model_selection#
主要新功能 添加了(实验性)参数搜索估计器
model_selection.HalvingRandomSearchCV和model_selection.HalvingGridSearchCV,它们实现了逐次减半(Successive Halving)方法,可以作为model_selection.RandomizedSearchCV和model_selection.GridSearchCV的直接替代。 #13900 由 Nicolas Hug、Joel Nothman 和 Andreas Müller 贡献。新功能
model_selection.RandomizedSearchCV和model_selection.GridSearchCV现在有了方法score_samples#17478 由 Teon Brooks 和 Mohamed Maskani 贡献。改进
model_selection.TimeSeriesSplit有两个新的关键字参数test_size和gap。test_size允许所有折叠的样本外时间序列长度固定。gap在每个折叠的训练集和测试集之间移除固定数量的样本。 #13204 由 Kyle Kosic 贡献。改进
model_selection.permutation_test_score和model_selection.validation_curve现在接受 fit_params 以传递额外的估计器参数。 #18527 由 Gaurav Dhingra、Julien Jerphanion 和 Amanda Dsouza 贡献。改进
model_selection.cross_val_score、model_selection.cross_validate、model_selection.GridSearchCV和model_selection.RandomizedSearchCV允许估计器评分失败,并用error_score替换分数。如果error_score="raise",则会引发错误。 #18343 由 Guillaume Lemaitre 和 Devi Sandeep 贡献。改进
model_selection.learning_curve现在接受 fit_params 以传递额外的估计器参数。 #18595 由 Amanda Dsouza 贡献。修复 修复了当所有分布都是列表且
n_iter大于唯一参数组合数时model_selection.ParameterSampler的len。 #18222 由 Nicolas Hug 贡献。修复 修复了当
model_selection.GridSearchCV和model_selection.RandomizedSearchCV的一个或多个交叉验证(CV)划分导致非有限分数时发出警告的问题。 #18266 由 Subrat Sahu、Nirvan 和 Arthur Book 贡献。改进
model_selection.GridSearchCV、model_selection.RandomizedSearchCV和model_selection.cross_validate支持scoring是一个可调用对象,返回一个包含多个指标名称/值关联的字典。 #15126 由 Thomas Fan 贡献。
sklearn.multiclass#
改进
multiclass.OneVsOneClassifier现在接受包含缺失值的输入。因此,可以处理缺失值的估计器(例如带有插补步骤的管道)可以用作多类别包装器的估计器。 #17987 由 Venkatachalam N 贡献。修复 修复了
multiclass.OutputCodeClassifier,使其在其fit和predict方法中接受稀疏输入数据。现在,输入有效性检查已委托给基础估计器。 #17233 由 Zolisa Bleki 贡献。
sklearn.multioutput#
改进
multioutput.MultiOutputClassifier和multioutput.MultiOutputRegressor现在接受包含缺失值的输入。因此,可以处理缺失值的估计器(例如带有插补步骤的管道,HistGradientBoosting 估计器)可以用作多类别包装器的估计器。 #17987 由 Venkatachalam N 贡献。修复 修复了
multioutput.ClassifierChain中order参数不接受元组的问题。 #18124 由 Gus Brocchini 和 Amanda Dsouza 贡献。
sklearn.naive_bayes#
改进 为
naive_bayes.CategoricalNB添加了参数min_categories,允许指定每个特征的最小类别数量。这使得训练期间未见的类别也能被考虑在内。 #16326 由 George Armstrong 贡献。API 变更 属性
coef_和intercept_现在在naive_bayes.MultinomialNB、naive_bayes.ComplementNB、naive_bayes.BernoulliNB和naive_bayes.CategoricalNB中已弃用,并将在 v1.1 版本(0.26 版本的重命名)中移除。 #17427 由 Juan Carlos Alfaro Jiménez 贡献。
sklearn.neighbors#
效率 通过避免在 Cython 中设置
n_jobs>1时意外获取 GIL,并在neighbors.KNeighborsClassifier、neighbors.KNeighborsRegressor、neighbors.RadiusNeighborsClassifier、neighbors.RadiusNeighborsRegressor、metrics.pairwise_distances中,通过在循环外验证数据,加速了neighbors.DistanceMetric中seuclidean、wminkowski、mahalanobis和haversine指标。 #17038 由 Wenbo Zhao 贡献。效率
neighbors.NeighborsBase受益于改进的algorithm = 'auto'启发式算法。除了以前的规则集外,现在当特征数量超过 15 时,会选择brute算法,因为假定数据内在维度对于基于树的方法来说过高。 #17148 由 Geoffrey Bolmier 贡献。修复
neighbors.BinaryTree在拟合具有不同维度点的数组数据时,将引发ValueError错误。 #18691 由 Chiara Marmo 贡献。修复
neighbors.NearestCentroid当shrink_threshold为数值类型时,在拟合所有特征都为常数的数据时,将引发ValueError错误。 #18370 由 Trevor Waite 贡献。修复 在
neighbors.NearestNeighbors、neighbors.RadiusNeighborsClassifier、neighbors.RadiusNeighborsRegressor和neighbors.RadiusNeighborsTransformer的radius_neighbors和radius_neighbors_graph方法中,即使使用“brute”算法进行拟合,使用sort_results=True现在也能正确地对结果进行排序。 #18612 由 Tom Dupre la Tour 贡献。
sklearn.neural_network#
效率 神经网络的训练和预测现在稍微快了一些。 #17603、 #17604、 #17606、 #17608、 #17609、 #17633、 #17661、 #17932 由 Alex Henrie 贡献。
改进 避免在
neural_network.BernoulliRBM中将 float32 输入转换为 float64。 #16352 由 Arthur Imbert 贡献。改进 在
neural_network.MLPClassifier和neural_network.MLPRegressor中支持 32 位计算。 #17759 由 Srimukh Sripada 贡献。修复 修复了
neural_network.MLPClassifier.fit方法在热启动时未能迭代到max_iter的问题。 #18269 由 Norbert Preining 和 Guillaume Lemaitre 贡献。
sklearn.pipeline#
改进 通过
transformer_weights传递给pipeline.FeatureUnion但未出现在transformer_list中的转换器引用将引发ValueError。 #17876 由 Cary Goltermann 贡献。修复 现在,
pipeline.Pipeline的切片会继承原始管道的参数(memory和verbose)。 #18429 由 Albert Villanova del Moral 和 Paweł Biernat 贡献。
sklearn.preprocessing#
新功能
preprocessing.OneHotEncoder现在支持通过将缺失值视为一个类别来处理它们。 #17317 由 Thomas Fan 贡献。新功能 为
preprocessing.OrdinalEncoder添加了一个新的handle_unknown参数,其中包含use_encoded_value选项,以及一个新的unknown_value参数,以便在转换期间允许未知类别并设置未知类别的编码值。 #17406 由 Felix Wick 贡献, #18406 由 Nicolas Hug 贡献。新功能 为
preprocessing.MinMaxScaler添加了clip参数,该参数将测试数据的转换值裁剪到feature_range。 #17833 由 Yashika Sharma 贡献。新功能 为
preprocessing.StandardScaler添加了sample_weight参数。允许为每个样本设置单独的权重。 #18510、 #18447、 #16066 和 #18682 由 Maria Telenczuk、 Albert Villanova、 @panpiort8 和 Alex Gramfort 贡献。改进
model_selection.GridSearchCV的详细输出已改进,提高了可读性。 #16935 由 Raghav Rajagopalan 和 Chiara Marmo 贡献。改进 为
preprocessing.RobustScaler添加了unit_variance,该参数将输出数据缩放,使正态分布的特征方差为 1。 #17193 由 Lucy Liu 和 Mabel Villalba 贡献。改进 为
preprocessing.KBinsDiscretizer添加了dtype参数。 #16335 由 Arthur Imbert 贡献。修复 当对于编码为全零的样本,
handle_unknown='error'且drop=None时,sklearn.preprocessing.OneHotEncoder.inverse_transform会引发错误。 #14982 由 Kevin Winata 贡献。
sklearn.semi_supervised#
主要新功能 添加了
semi_supervised.SelfTrainingClassifier,它是一个元分类器,允许任何监督分类器作为可以从未标记数据中学习的半监督分类器运行。 #11682 由 Oliver Rausch 和 Patrice Becker 贡献。修复 修复了在
preprocessing.OneHotEncoder和preprocessing.OrdinalEncoder中使用 Unicode 字符串 dtype 时编码不正确的问题。 #15763 由 Thomas Fan 贡献。
sklearn.svm#
改进 在
fit、predict以及svm.SVC、svm.NuSVC、svm.SVR、svm.NuSVR和svm.OneClassSVM的相关方法中调用 SciPy BLAS API 进行 SVM 核函数计算。 #16530 由 Shuhua Fan 贡献。
sklearn.tree#
新功能
tree.DecisionTreeRegressor现在支持新的分裂准则'poisson',这对于计数数据建模很有用。 #17386 由 Christian Lorentzen 贡献。改进
tree.plot_tree现在使用 matplotlib 配置设置中的颜色。 #17187 由 Andreas Müller 贡献。API 变更 参数
X_idx_sorted现在在tree.DecisionTreeClassifier.fit和tree.DecisionTreeRegressor.fit中已弃用,并且没有效果。 #17614 由 Juan Carlos Alfaro Jiménez 贡献。
sklearn.utils#
改进 为
check_estimator添加了check_methods_sample_order_invariance,它检查估计器方法在应用于具有不同样本顺序的相同数据集时是否不变。 #17598 由 Jason Ngo 贡献。改进 在
utils.sparse_func.incr_mean_variance_axis中添加了对权重的支持。由 Maria Telenczuk 和 Alex Gramfort 贡献。修复 在
utils.check_array中,对于混合类型的稀疏 DataFrame,会引发带有清晰错误消息的 ValueError。 #17992 由 Thomas J. Fan 和 Alex Shacked 贡献。修复 检查当
axis=1且utils.sparse_func.incr_mean_variance_axis中的维度不匹配时,我们是否会引发适当的错误。由 Alex Gramfort 贡献。
杂项#
代码和文档贡献者
感谢自 0.23 版本以来为项目维护和改进做出贡献的所有人,包括:
Abo7atm, Adam Spannbauer, Adrin Jalali, adrinjalali, Agamemnon Krasoulis, Akshay Deodhar, Albert Villanova del Moral, Alessandro Gentile, Alex Henrie, Alex Itkes, Alex Liang, Alexander Lenail, alexandracraciun, Alexandre Gramfort, alexshacked, Allan D Butler, Amanda Dsouza, amy12xx, Anand Tiwari, Anderson Nelson, Andreas Mueller, Ankit Choraria, Archana Subramaniyan, Arthur Imbert, Ashutosh Hathidara, Ashutosh Kushwaha, Atsushi Nukariya, Aura Munoz, AutoViz and Auto_ViML, Avi Gupta, Avinash Anakal, Ayako YAGI, barankarakus, barberogaston, beatrizsmg, Ben Mainye, Benjamin Bossan, Benjamin Pedigo, Bharat Raghunathan, Bhavika Devnani, Biprateep Dey, bmaisonn, Bo Chang, Boris Villazón-Terrazas, brigi, Brigitta Sipőcz, Bruno Charron, Byron Smith, Cary Goltermann, Cat Chenal, CeeThinwa, chaitanyamogal, Charles Patel, Chiara Marmo, Christian Kastner, Christian Lorentzen, Christoph Deil, Christos Aridas, Clara Matos, clmbst, Coelhudo, crispinlogan, Cristina Mulas, Daniel López, Daniel Mohns, darioka, Darshan N, david-cortes, Declan O’Neill, Deeksha Madan, Elizabeth DuPre, Eric Fiegel, Eric Larson, Erich Schubert, Erin Khoo, Erin R Hoffman, eschibli, Felix Wick, fhaselbeck, Forrest Koch, Francesco Casalegno, Frans Larsson, Gael Varoquaux, Gaurav Desai, Gaurav Sheni, genvalen, Geoffrey Bolmier, George Armstrong, George Kiragu, Gesa Stupperich, Ghislain Antony Vaillant, Gim Seng, Gordon Walsh, Gregory R. Lee, Guillaume Chevalier, Guillaume Lemaitre, Haesun Park, Hannah Bohle, Hao Chun Chang, Harry Scholes, Harsh Soni, Henry, Hirofumi Suzuki, Hitesh Somani, Hoda1394, Hugo Le Moine, hugorichard, indecisiveuser, Isuru Fernando, Ivan Wiryadi, j0rd1smit, Jaehyun Ahn, Jake Tae, James Hoctor, Jan Vesely, Jeevan Anand Anne, JeroenPeterBos, JHayes, Jiaxiang, Jie Zheng, Jigna Panchal, jim0421, Jin Li, Joaquin Vanschoren, Joel Nothman, Jona Sassenhagen, Jonathan, Jorge Gorbe Moya, Joseph Lucas, Joshua Newton, Juan Carlos Alfaro Jiménez, Julien Jerphanion, Justin Huber, Jérémie du Boisberranger, Kartik Chugh, Katarina Slama, kaylani2, Kendrick Cetina, Kenny Huynh, Kevin Markham, Kevin Winata, Kiril Isakov, kishimoto, Koki Nishihara, Krum Arnaudov, Kyle Kosic, Lauren Oldja, Laurenz Reitsam, Lisa Schwetlick, Louis Douge, Louis Guitton, Lucy Liu, Madhura Jayaratne, maikia, Manimaran, Manuel López-Ibáñez, Maren Westermann, Maria Telenczuk, Mariam-ke, Marijn van Vliet, Markus Löning, Martin Scheubrein, Martina G. Vilas, Martina Megasari, Mateusz Górski, mathschy, mathurinm, Matthias Bussonnier, Max Del Giudice, Michael, Milan Straka, Muoki Caleb, N. Haiat, Nadia Tahiri, Ph. D, Naoki Hamada, Neil Botelho, Nicolas Hug, Nils Werner, noelano, Norbert Preining, oj_lappi, Oleh Kozynets, Olivier Grisel, Pankaj Jindal, Pardeep Singh, Parthiv Chigurupati, Patrice Becker, Pete Green, pgithubs, Poorna Kumar, Prabakaran Kumaresshan, Probinette4, pspachtholz, pwalchessen, Qi Zhang, rachel fischoff, Rachit Toshniwal, Rafey Iqbal Rahman, Rahul Jakhar, Ram Rachum, RamyaNP, rauwuckl, Ravi Kiran Boggavarapu, Ray Bell, Reshama Shaikh, Richard Decal, Rishi Advani, Rithvik Rao, Rob Romijnders, roei, Romain Tavenard, Roman Yurchak, Ruby Werman, Ryotaro Tsukada, sadak, Saket Khandelwal, Sam, Sam Ezebunandu, Sam Kimbinyi, Sarah Brown, Saurabh Jain, Sean O. Stalley, Sergio, Shail Shah, Shane Keller, Shao Yang Hong, Shashank Singh, Shooter23, Shubhanshu Mishra, simonamaggio, Soledad Galli, Srimukh Sripada, Stephan Steinfurt, subrat93, Sunitha Selvan, Swier, Sylvain Marié, SylvainLan, t-kusanagi2, Teon L Brooks, Terence Honles, Thijs van den Berg, Thomas J Fan, Thomas J Fan, Thomas S Benjamin, Thomas9292, Thorben Jensen, tijanajovanovic, Timo Kaufmann, tnwei, Tom Dupré la Tour, Trevor Waite, ufmayer, Umberto Lupo, Venkatachalam N, Vikas Pandey, Vinicius Rios Fuck, Violeta, watchtheblur, Wenbo Zhao, willpeppo, xavier dupré, Xethan, Xue Qianming, xun-tang, yagi-3, Yakov Pchelintsev, Yashika Sharma, Yi-Yan Ge, Yue Wu, Yutaro Ikeda, Zaccharie Ramzi, zoj613, Zhao Feng.