版本 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
中接受uint8
dtype 的数据。#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
现在在使用object
dtype 数组时速度更快。当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.