版本 0.24#
有关此版本主要亮点的简短说明,请参阅 scikit-learn 0.24 版本亮点。
变更日志图例
主要功能 之前无法实现的重要功能。
功能 之前无法实现的功能。
效率提升 现有功能现在可能不需要那么多计算或内存。
增强 其他一些小的改进。
修复 之前未按文档说明或合理预期工作的内容现在应该可以工作了。
API 变更 您需要更改代码才能在将来获得相同的效果;或者将来会删除某个功能。
版本 0.24.2#
2021年4月
变更日志#
sklearn.compose
#
修复
compose.ColumnTransformer.get_feature_names
不会对具有空列选择的转换器调用get_feature_names
。 #19579 由 Thomas Fan 贡献。
sklearn.cross_decomposition
#
修复 修复了
cross_decomposition.CCA
中的回归问题。 #19646 由 Thomas Fan 贡献。修复
cross_decomposition.PLSRegression
针对恒定的 y 残差发出警告,而不是StopIteration
错误。 #19922 由 Thomas Fan 贡献。
sklearn.decomposition
#
修复 修复了
decomposition.KernelPCA
的inverse_transform
中的错误。 #19732 由 Kei Ishikawa 贡献。
sklearn.ensemble
#
修复 修复了
ensemble.HistGradientBoostingRegressor
fit
带有sample_weight
参数和least_absolute_deviation
损失函数时的错误。 #19407 由 Vadim Ushtanit 贡献。
sklearn.feature_extraction
#
修复 修复了一个错误,以便在
feature_extraction.DictVectorizer
中sparse=False
时支持多个类别字符串。 #19982 由 Guillaume Lemaitre 贡献。
sklearn.gaussian_process
#
修复 在设置为输出标准差时,避免在
gaussian_process.GaussianProcessRegressor
中显式地形成逆协方差矩阵。对于某些协方差矩阵,此逆矩阵的计算不稳定。调用 Cholesky 求解器可以减轻计算中的这个问题。 #19939 由 Ian Halvic 贡献。修复 在
gaussian_process.GaussianProcessRegressor
中缩放常数目标时避免零除。这是由于标准差等于 0 造成的。现在,这种情況会被检测到,并将标准差设置为 1,从而避免零除,以及归一化目标中出现 NaN 值。 #19703 由 @sobkevich、Boris Villazón-Terrazas 和 Alexandr Fonari 完成。
sklearn.linear_model
#
修复 : 修复了
linear_model.LogisticRegression
中的一个错误:`sample_weight` 对象不再被修改。 #19182 由 Yosuke KOBAYASHI 完成。
sklearn.metrics
#
修复
metrics.top_k_accuracy_score
现在支持仅在y_true
中出现两个类别且所有类别都在labels
中指定的多种类问题。 #19721 由 Joris Clement 完成。
sklearn.model_selection
#
修复
model_selection.RandomizedSearchCV
和model_selection.GridSearchCV
现在可以正确显示单个指标的分数,并且 verbose > 2。 #19659 由 Thomas Fan 完成。修复
model_selection.HalvingRandomSearchCV
和model_selection.HalvingGridSearchCV
的cv_results_
属性中的一些值没有正确转换为 NumPy 数组。 #19211 由 Nicolas Hug 完成。修复 连续减半参数搜索的
fit
方法(model_selection.HalvingGridSearchCV
和model_selection.HalvingRandomSearchCV
)现在可以正确处理groups
参数。 #19847 由 Xiaoyu Chai 完成。
sklearn.multioutput
#
修复
multioutput.MultiOutputRegressor
现在可以与在拟合过程中动态定义predict
的估计器一起使用,例如ensemble.StackingRegressor
。 #19308 由 Thomas Fan 完成。
sklearn.preprocessing
#
修复 验证
preprocessing.OrdinalEncoder
中的构造函数参数handle_unknown
,只允许'error'
和'use_encoded_value'
策略。 #19234 由Guillaume Lemaitre <glemaitre>
完成。已修复 修复了 `dtype='S'` 的编码器类别
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
。 #19727 由 Andrew Delong 完成。已修复
preprocessing.OrdinalEncoder.transform
正确处理字符串类型的未知值。 #19888 由 Thomas Fan 完成。已修复
preprocessing.OneHotEncoder.fit
不会再更改drop
参数。 #19924 由 Thomas Fan 完成。
sklearn.semi_supervised
#
已修复 在
LabelPropagation
中避免标签传播期间出现 NaN 值。 #19271 由 Zhaowei Wang 完成。
sklearn.tree
#
已修复 修复了
tree.BaseDecisionTree
的fit
方法中的一个错误,该错误在某些情况下会导致段错误。fit
现在会深复制Criterion
对象,以防止共享并发访问。 #19580 由 Samuel Brice、Alex Adamson 和 Wil Yegelwel 完成。
sklearn.utils
#
已修复 通过为 HTML 表示提供 CSS ID,更好地包含由
utils.estimator_html_repr
提供的 CSS。 #19417 由 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 由 Thomas Fan 完成。
sklearn.semi_supervised
#
已修复
semi_supervised.SelfTrainingClassifier
现在接受元估计器(例如ensemble.StackingClassifier
)。一旦我们知道predict_proba
方法的存在,就会对已拟合的估计器进行验证。 #19126 由 Guillaume Lemaitre 完成。
版本 0.24.0#
2020年12月
模型变更#
使用相同数据和参数拟合的以下估计器和函数,可能生成与先前版本不同的模型。这通常是由于建模逻辑(错误修复或增强)或随机抽样过程中的更改引起的。
已修复 当内核具有小的正特征值时,
decomposition.KernelPCA
的行为现在在 32 位和 64 位数据之间更加一致。已修复 通过公开
random_state
参数,decomposition.TruncatedSVD
变为确定性算法。已修复
linear_model.Perceptron
当penalty='elasticnet'
时。已修复
cluster.KMeans
中心初始化的随机采样过程发生了变化。
详细信息列在下面的变更日志中。
(虽然我们正在努力通过提供此信息来更好地告知用户,但我们不能保证此列表完整。)
更新日志#
sklearn.base
#
修复
base.BaseEstimator.get_params
现在如果参数无法作为实例属性检索,将引发AttributeError
异常。之前它会返回None
。 #17448 由 Juan Carlos Alfaro Jiménez 完成。
sklearn.calibration
#
效率提升
calibration.CalibratedClassifierCV.fit
现在支持通过joblib.Parallel
使用参数n_jobs
进行并行化。 #17107 由 Julien Jerphanion 完成。增强 允许
calibration.CalibratedClassifierCV
与预先拟合的pipeline.Pipeline
一起使用,即使在开始时数据X
不是数组、稀疏矩阵或数据框。 #17546 由 Lucy Liu 完成。增强 向
calibration.CalibratedClassifierCV
添加了ensemble
参数,它允许通过校准器集合(当前方法)或仅使用所有数据的单个校准器来实现校准(类似于sklearn.svm
估计器使用probabilities=True
参数的内置功能)。 #17856 由 Lucy Liu 和 Andrea Esuli 完成。
sklearn.cluster
#
增强
cluster.AgglomerativeClustering
有一个新的参数compute_distances
。当设置为True
时,即使不使用参数distance_threshold
,也会计算集群之间的距离并将其存储在distances_
属性中。此新参数可用于生成树状图可视化,但会引入计算和内存开销。 #17984 由 Michael Riedmann、Emilie Delattre 和 Francesco Casalegno 完成。增强
cluster.SpectralClustering
和cluster.spectral_clustering
有一个新的关键字参数verbose
。当设置为True
时,将显示其他消息,这有助于调试。 #18052 由 Sean O. Stalley 完成。增强 添加了
cluster.kmeans_plusplus
作为公共函数。现在可以单独调用 KMeans++ 初始化来生成初始聚类中心。 #17937 由 @g-walsh 完成。API变更
cluster.MiniBatchKMeans
的属性counts_
和init_size_
已弃用,并将从 1.1 版本(0.26 版本的重命名)中移除。 #17864 由 Jérémie du Boisberranger 完成。
sklearn.compose
#
修复 当列选择器是一个全为False的布尔值列表时,
compose.ColumnTransformer
将跳过转换器。 #17616 由 Thomas Fan 完成。修复
compose.ColumnTransformer
现在在图表显示中显示剩余部分。 #18167 由 Thomas Fan 完成。修复
compose.ColumnTransformer
通过抛出错误而不是警告来强制执行fit
和transform
之间列名的严格数量和顺序,遵循弃用周期。 #18256 由 Madhura Jayratne 完成。
sklearn.covariance
#
API变更 弃用
cv_alphas_
,推荐使用cv_results_['alphas']
;弃用grid_scores_
,推荐使用cv_results_
中的分数,这些更改应用于covariance.GraphicalLassoCV
。cv_alphas_
和grid_scores_
将在 1.1 版本 (0.26 版本重命名) 中移除。 #16392 由 Thomas Fan 完成。
sklearn.cross_decomposition
#
修复 修复了
cross_decomposition.PLSSVD
中的一个 bug,该 bug 有时会返回重要性顺序相反的成分。 #17095 由 Nicolas Hug 完成。修复 修复了
cross_decomposition.PLSSVD
,cross_decomposition.CCA
和cross_decomposition.PLSCanonical
中的一个 bug,该 bug 会导致当训练数据是单目标时est.transform(Y)
的预测结果不正确。 #17095 由 Nicolas Hug 完成。修复 提高了
cross_decomposition.CCA
的稳定性 #18746 由 Thomas Fan 完成。API变更
n_components
参数的边界现在被限制为[1, min(n_samples, n_features, n_targets)]
,适用于cross_decomposition.PLSSVD
,cross_decomposition.CCA
和cross_decomposition.PLSCanonical
。[1, n_features]
或cross_decomposition.PLSRegression
。
将在 1.1 版本 (0.26 版本重命名) 中引发错误。 #17095 由 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 由 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 由 Maren Westermann 完成。修复 通过使用
random_state
,decomposition.TruncatedSVD
变得确定性。它控制底层 ARPACK 求解器的权重初始化。:pr:` #18302` 由 Gaurav Desai 和 Ivan Panico 完成。
sklearn.datasets
#
新增功能
datasets.fetch_openml
现在验证下载或缓存的 arff 文件的 md5 校验和,以确保数据完整性。#14800 由 Shashank Singh 和 Joel Nothman 完成。增强
datasets.fetch_openml
现在允许参数as_frame
为 ‘auto’,除非数据是稀疏的,否则它会尝试将返回的数据转换为 pandas DataFrame。#17396 由 Jiaxiang 完成。增强
datasets.fetch_covtype
现在支持可选参数as_frame
;当设置为 True 时,返回的 Bunch 对象的data
和frame
成员是 pandas DataFrame,target
成员是 pandas Series。#17491 由 Alex Liang 完成。增强
datasets.fetch_kddcup99
现在支持可选参数as_frame
;当设置为 True 时,返回的 Bunch 对象的data
和frame
成员是 pandas DataFrame,target
成员是 pandas Series。#18280 由 Alex Liang 和 Guillaume Lemaitre 完成。增强
datasets.fetch_20newsgroups_vectorized
现在支持通过设置as_frame=True
来加载为 pandasDataFrame
。#17499 由 Brigitta Sipőcz 和 Guillaume Lemaitre 完成。API变更
datasets.fetch_openml
中as_frame
的默认值已从 False 更改为 ‘auto’。#17610 由 Jiaxiang 完成。
sklearn.decomposition
#
API变更 对于
decomposition.NMF
,当 ‘init=None’ 且 n_components <= min(n_samples, n_features) 时,init
值将从'nndsvd'
更改为'nndsvda'
(1.1 版本,0.26 版本重命名)。#18525 由 Chiara Marmo 完成。增强
decomposition.FactorAnalysis
现在支持可选参数rotation
,其值可以为None
、'varimax'
或'quartimax'
。#11064 由 Jona Sassenhagen 完成。增强
decomposition.NMF
现在支持可选参数regularization
,其值可以为None
、‘components’、‘transformation’ 或 ‘both’,与decomposition.NMF.non_negative_factorization
保持一致。#17414 由 Bharat Raghunathan 完成。修复
decomposition.KernelPCA
的行为现在在 32 位和 64 位数据输入之间更加一致,尤其是在核具有小的正特征值时。对于 32 位数据,小的正特征值未被正确丢弃。#18149 由 Sylvain Marié 完成。修复 修复了
decomposition.SparseCoder
,使其遵循 scikit-learn API 并支持克隆。属性components_
在 0.24 版本中已弃用,将在 1.1 版本中移除(0.26 版本重命名)。此属性与dictionary
属性和构造函数参数冗余。#17679 由 Xavier Dupré 完成。修复
decomposition.TruncatedSVD.fit_transform
现在始终返回与decomposition.TruncatedSVD.fit
后跟decomposition.TruncatedSVD.transform
相同的结果。#18528 由 Albert Villanova del Moral 和 Ruifeng Zheng 完成。
sklearn.discriminant_analysis
#
增强
discriminant_analysis.LinearDiscriminantAnalysis
现在可以通过设置covariance_estimator
参数来使用自定义协方差估计。#14446 由 Hugo Richard 完成。
sklearn.ensemble
#
主要功能
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
现在通过categorical_features
参数原生支持分类特征。#18394 由 Nicolas Hug 和 Thomas Fan 完成。功能
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
现在支持staged_predict
方法,允许监控每个阶段。#16985 由 Hao Chun Chang 完成。效率提升 打破了
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
内部使用的树节点中的循环引用,从而允许及时垃圾回收大型中间数据结构,并提高fit
方法的内存使用效率。 #18334 由 Olivier Grisel、Nicolas Hug、Thomas Fan 和 Andreas Müller 贡献。效率提升
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
中的直方图初始化现在并行进行,这使得在多核机器上构建大量节点的问题速度得到了提升。 #18341 由 Olivier Grisel、Nicolas Hug、Thomas Fan 和 Egor Smirnov 贡献。错误修复 修复了
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
中的一个错误,现在可以在predict
方法中接受uint8
数据类型的数据。 #18410 由 Nicolas Hug 贡献。API变更
ensemble.GradientBoostingRegressor
中的参数n_classes_
已弃用,现在返回1
。 #17702 由 Simona Maggio 贡献。API变更 在
ensemble.GradientBoostingRegressor
和ensemble.GradientBoostingClassifier
中,参数criterion
的平均绝对误差(‘mae’)已弃用。 #18326 由 Madhura Jayaratne 贡献。
sklearn.exceptions
#
API变更
exceptions.ChangedBehaviorWarning
和exceptions.NonBLASDotWarning
已弃用,将在 1.1 版本中移除(0.26 版本的重命名)。 #17804 由 Adrin Jalali 贡献。
sklearn.feature_extraction
#
增强功能
feature_extraction.DictVectorizer
现在可以接受一个分类特征的多个值。 #17367 由 Peng Yu 和 Chiara Marmo 贡献。错误修复 修复了
feature_extraction.text.CountVectorizer
的一个问题,该问题在提供捕获多个分组的自定义标记模式时会引发错误。 #15427 由 Gangesh Gudmalwar 和 Erin R Hoffman 贡献。
sklearn.feature_selection
#
新功能 添加了
feature_selection.SequentialFeatureSelector
,它实现了前向和后向顺序特征选择。 #6545 由 Sebastian Raschka 贡献,#17159 由 Nicolas Hug 贡献。新增功能 在
feature_selection.RFE
、feature_selection.RFECV
和feature_selection.SelectFromModel
中添加了一个新的参数importance_getter
,允许用户指定属性名称/路径或一个callable
对象来从估计器中提取特征重要性。 #15361 由 Venkatachalam N 完成。效率提升 通过调用
neighbors.KDTree
来计算最近邻,从而减少了feature_selection.mutual_info_classif
和feature_selection.mutual_info_regression
的内存占用。 #17878 由 Noel Rogers 完成。改进
feature_selection.RFE
支持使用浮点数表示要选择的特征百分比作为n_features_to_select
参数的值。 #17090 由 Lisa Schwetlick 和 Marija Vlajic Wheeler 完成。
sklearn.gaussian_process
#
改进 在拟合高斯过程后,调用新的方法
gaussian_process.kernel._check_bounds_params
,如果超参数的边界过于严格,则会引发ConvergenceWarning
警告。 #12638 由 Sylvain Lannuzel 完成。
sklearn.impute
#
新增功能 当
strategy='most_frequent'
或strategy='constant'
时,impute.SimpleImputer
现在支持字符串列表。 #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 完成。效率提升 当
SimpleImputer
中strategy='most_frequent'
时,impute.SimpleImputer
使用object
数据类型数组的速度更快了。 #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 个特征的二维数组作为输入数组。 #17379 由 Jiaxiang 贡献。修复 在确定重复的 X 值时添加了容差,以防止
isotonic.IsotonicRegression
预测无穷大值。 #18639 由 Lucy Liu 贡献。
sklearn.kernel_approximation
#
新增功能 添加了
kernel_approximation.PolynomialCountSketch
类,它实现了用于多项式核特征映射近似的张量草图算法。 #13003 由 Daniel López Sánchez 贡献。效率提升
kernel_approximation.Nystroem
现在支持通过joblib.Parallel
使用参数n_jobs
进行并行化。 #18545 由 Laurenz Reitsam 贡献。
sklearn.linear_model
#
新增功能 当
positive
设置为True
时,linear_model.LinearRegression
现在强制系数全部为正。 #17578 由 Joseph Knox,Nelle Varoquaux 和 Chiara Marmo 贡献。增强
linear_model.RidgeCV
现在支持通过设置alpha_per_target=True
为每个目标分别找到最佳正则化值alpha
。这仅在使用默认的高效留一法交叉验证方案cv=None
时受支持。 #6624 由 Marijn van Vliet 贡献。修复 修复了
linear_model.TheilSenRegressor
中的一个 bug,其中当fit_intercept=False
且拟合期间只有一个特征时,predict
和score
会失败。 #18121 由 Thomas Fan 贡献。修复 修复了
linear_model.ARDRegression
中的一个 bug,其中当normalize=True
和return_std=True
时,predict
会引发错误,因为X_offset_
和X_scale_
未定义。 #18607 由 fhaselbeck 贡献。修复 在
linear_model.Perceptron
中添加了缺失的l1_ratio
参数,在penalty='elasticnet'
时使用。这将默认值从 0 更改为 0.15。 #18622 由 Haesun Park 贡献。
sklearn.manifold
#
效率提升 修复了 #10493。改进了局部线性嵌入 (LLE),解决了其在处理大型输入时引发
MemoryError
异常的问题。由 Bertrand Maisonneuve 在 #17997 中完成。增强功能 向
manifold.TSNE
添加了square_distances
参数,在弃用旧的平方行为期间提供向后兼容性。在 1.1 版本(0.26 版本的重命名)中,距离将默认平方,此参数将在 1.3 版本中移除。由 Joshua Newton 在 #17662 中完成。错误修复
manifold.MDS
现在正确设置了其_pairwise
属性。由 Thomas Fan 在 #18278 中完成。
sklearn.metrics
#
新功能 添加了
metrics.cluster.pair_confusion_matrix
,实现了由两个聚类结果中的元素对产生的混淆矩阵。由 Uwe F Mayer 在 #17412 中完成。新功能 新的度量指标
metrics.top_k_accuracy_score
。它是metrics.top_k_accuracy_score
的泛化,区别在于只要真标签与k
个最高预测分数之一相关联,预测就被认为是正确的。metrics.accuracy_score
是k = 1
的特例。由 Geoffrey Bolmier 在 #16625 中完成。新功能 添加了
metrics.det_curve
用于计算检测误差权衡曲线分类指标。由 Jeremy Karnowski 和 Daniel Mohns 在 #10591 中完成。新功能 添加了
metrics.plot_det_curve
和metrics.DetCurveDisplay
以简化 DET 曲线的绘制。由 Guillaume Lemaitre 在 #18176 中完成。新功能 添加了
metrics.mean_absolute_percentage_error
度量指标和相关的回归问题评分器。由 Ashutosh Hathidara 在 #15007 中修复了 #10708。评分器和一些实际测试用例来自 #10711,由 Mohamed Ali Jamaoui 完成。新功能 添加了
metrics.rand_score
,实现了(未调整的)Rand 指数。由 Uwe F Mayer 在 #17412 中完成。新功能
metrics.plot_confusion_matrix
现在支持通过设置colorbar=False
在 matplotlib 绘图中选择是否显示颜色条。由 Avi Gupta 在 #17192 中完成。增强功能 向
metrics.median_absolute_error
添加了sample_weight
参数。由 Lucy Liu 在 #17225 中完成。增强功能 在
metrics.plot_precision_recall_curve
中添加了pos_label
参数,以便在计算精确率和召回率统计数据时指定要使用的正类。由 Guillaume Lemaitre 在 #17569 中完成。增强功能 在
metrics.plot_roc_curve
中添加了pos_label
参数,以便在计算 ROC AUC 统计数据时指定要使用的正类。由 Clara Matos 在 #17651 中完成。修复 修复了
metrics.classification_report
中的一个bug,当使用output_dict=True
且值为0时,会引发AttributeError。 #17777 由Shubhanshu Mishra贡献。修复 修复了
metrics.classification_report
中的一个bug,当使用output_dict=True
且值为0时,会引发AttributeError。 #17777 由Shubhanshu Mishra贡献。修复 修复了
metrics.jaccard_score
中的一个bug,当没有真值或预测样本时,会建议使用zero_division
参数。 #17826 由Richard Decal和Joseph Willard贡献。修复 修复了
metrics.hinge_loss
中的一个bug,当y_true
缺少labels
参数中明确提供的某些标签时,会发生错误。 #17935 由Cary Goltermann贡献。修复 修复了接受
pos_label
参数并根据decision_function
或predict_proba
返回的值计算其指标的评分器。之前,当pos_label
与classifier.classes_[1]
不对应时,它们会返回错误的值。这在直接使用字符串标签目标类别训练分类器时尤其重要。 #18114 由Guillaume Lemaitre贡献。修复 修复了
metrics.plot_confusion_matrix
中的一个bug,当y_true
包含分类器之前未见过的标签,并且labels
和display_labels
参数设置为None
时,会发生错误。 #18405 由Thomas J. Fan和Yakov Pchelintsev贡献。
sklearn.model_selection
#
主要功能 添加了(实验性)参数搜索估计器
model_selection.HalvingRandomSearchCV
和model_selection.HalvingGridSearchCV
,它们实现了连续减半算法,可以用作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
允许所有fold的样本外时间序列长度保持固定。gap
在每个fold的训练集和测试集之间移除固定数量的样本。 #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
的一个或多个交叉验证分割结果为非有限分数时,发出警告的问题。#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
中seuclidean
、wminkowski
、mahalanobis
和haversine
度量的速度。同时通过在循环之外验证数据来提升效率。 #17038 由 Wenbo Zhao 完成。效率提升
neighbors.NeighborsBase
得益于改进的algorithm = 'auto'
启发式算法。除了之前的规则集之外,现在,当特征数量超过 15 时,将选择brute
,假设数据的内在维数对于基于树的方法来说太高了。 #17148 由 Geoffrey Bolmier 完成。修复 当拟合的数据数组包含不同维度的点时,
neighbors.BinaryTree
将引发ValueError
。 #18691 由 Chiara Marmo 完成。修复 当使用数值型
shrink_threshold
对所有特征都为常数的数据进行拟合时,neighbors.NearestCentroid
将引发ValueError
。 #18370 由 Trevor Waite 完成。修复 在
neighbors.NearestNeighbors
、neighbors.RadiusNeighborsClassifier
、neighbors.RadiusNeighborsRegressor
和neighbors.RadiusNeighborsTransformer
的radius_neighbors
和radius_neighbors_graph
方法中,使用sort_results=True
现在即使使用“brute”算法进行拟合也能正确排序结果。 #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
在 warm start 时未迭代到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
#
增强 在
svm.SVC
、svm.NuSVC
、svm.SVR
、svm.NuSVR
、svm.OneClassSVM
的fit
、predict
和相关方法中,调用SciPy BLAS API实现SVM核函数。#16530 由 Shuhua Fan 完成。
sklearn.tree
#
功能
tree.DecisionTreeRegressor
现在支持新的分裂标准'poisson'
,这对于建模计数数据非常有用。#17386 由 Christian Lorentzen 完成。增强
tree.plot_tree
现在使用来自matplotlib配置设置的颜色。#17187 由 Andreas Müller 完成。API变更
tree.DecisionTreeClassifier.fit
和tree.DecisionTreeRegressor.fit
中的参数X_idx_sorted
现已弃用,并且无效。#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 完成。修复 允许在具有不同endianness的机器上解pickle序列化后的基于树的模型。#17644 由 Qi Zhang 完成。
修复 检查当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 和 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 Kumaressan,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。