版本 0.24#
有关本次发布主要亮点的简要描述,请参阅 scikit-learn 0.24 版本发布亮点 。
Legend for changelogs
Major Feature something big that you couldn’t do before.
Feature something that you couldn’t do before.
Efficiency an existing feature now may not require as much computation or memory.
Enhancement a miscellaneous minor improvement.
Fix something that previously didn’t work as documented – or according to reasonable expectations – should now work.
API Change you will need to change your code to have the same effect in the future; or a feature will be removed in the future.
版本 0.24.2#
2021年4月
更新日志#
sklearn.compose
#
Fix
compose.ColumnTransformer.get_feature_names
在列选择为空时不再调用get_feature_names
方法。#19579 由 Thomas Fan 提交。
sklearn.cross_decomposition
#
Fix 修复了
cross_decomposition.CCA
中的回归问题。#19646 由 Thomas Fan 提交。Fix
cross_decomposition.PLSRegression
在 y 残差恒定时发出警告, 而不是引发StopIteration
错误。#19922 由 Thomas Fan 提交。
sklearn.decomposition
#
Fix 修复了
decomposition.KernelPCA
的inverse_transform
中的错误。 #19732 由 Kei Ishikawa 提交。
sklearn.ensemble
#
Fix 修复了
ensemble.HistGradientBoostingRegressor
在sample_weight
参数和least_absolute_deviation
损失函数下的fit
方法中的错误。#19407 由 Vadim Ushtanit 提交。
sklearn.feature_extraction
#
Fix 修复了在
feature_extraction.DictVectorizer
中sparse=False
时 支持多个字符串作为类别的错误。#19982 由 Guillaume Lemaitre 提交。
sklearn.gaussian_process
#
Fix 在
gaussian_process.GaussianProcessRegressor
设置为输出标准差时, 避免显式形成逆协方差矩阵。对于某些协方差矩阵,这种逆矩阵是不稳定的。
显式计算。调用Cholesky求解器在计算中缓解了这个问题。 #19939 由 Ian Halvic 贡献。
Fix 在
gaussian_process.GaussianProcessRegressor
中避免当目标缩放常数时除以零。这是由于标准差等于0。现在,这种情况被检测到,标准差被设置为1,避免了除以零,从而避免了归一化目标中出现NaN值。
#19703 由 @sobkevich , Boris Villazón-Terrazas 和 Alexandr Fonari 贡献。
sklearn.linear_model
#
Fix : 修复了
linear_model.LogisticRegression
中的一个错误:sample_weight 对象不再被修改。#19182 由 Yosuke KOBAYASHI 贡献。
sklearn.metrics
#
Fix
metrics.top_k_accuracy_score
现在支持多类问题,其中y_true
中只出现两个类别,并且所有类别都在labels
中指定。
#19721 由 Joris Clement 贡献。
sklearn.model_selection
#
Fix
model_selection.RandomizedSearchCV
和model_selection.GridSearchCV
现在正确显示单个指标和 verbose > 2 的分数。#19659 由 Thomas Fan 贡献。Fix
model_selection.HalvingRandomSearchCV
和model_selection.HalvingGridSearchCV
的cv_results_
属性中的一些值没有正确转换为 numpy 数组。#19211 由 Nicolas Hug 贡献。Fix 连续减半参数搜索的
fit
方法(model_selection.HalvingGridSearchCV
和model_selection.HalvingRandomSearchCV
)现在正确处理groups
参数。#19847 由 Xiaoyu Chai 贡献。
sklearn.multioutput
#
Fix
multioutput.MultiOutputRegressor
现在可以与估计器一起工作。
在拟合过程中动态定义 predict
的类,例如
ensemble.StackingRegressor
。#19308 由 Thomas Fan 提交。
sklearn.preprocessing
#
Fix 验证
preprocessing.OrdinalEncoder
的构造参数handle_unknown
,仅允许'error'
和'use_encoded_value'
策略。 #19234 由Guillaume Lemaitre <glemaitre>
提交。Fix 修复编码器类别具有 dtype=’S’ 的问题
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
。 #19727 由 Andrew Delong 提交。Fix
preprocessing.OrdinalEncoder.transform
正确处理字符串 dtypes 的未知值。 #19888 由 Thomas Fan 提交。Fix
preprocessing.OneHotEncoder.fit
不再更改drop
参数。 #19924 由 Thomas Fan 提交。
sklearn.semi_supervised
#
Fix 避免在
LabelPropagation
中进行标签传播时出现 NaN。 #19271 由 Zhaowei Wang 提交。
sklearn.tree
#
Fix 修复
tree.BaseDecisionTree
的fit
方法中的一个错误,该错误在某些条件下会导致段错误。fit
现在深度复制Criterion
对象以防止共享并发访问。 #19580 由 Samuel Brice 和 Alex Adamson 以及 Wil Yegelwel 提交。
sklearn.utils
#
Fix 通过为 HTML 表示提供 CSS id,更好地包含
utils.estimator_html_repr
提供的 CSS。 #19417 由 Thomas Fan 提交。
版本 0.24.1#
2021年1月
打包#
0.24.0 版本的 scikit-learn 轮子在 MacOS <1.15 上无法正常工作,原因是 libomp
。用于构建轮子的 libomp
版本对于较旧的 macOS 版本来说太新了。此问题已在 0.24.1 版本的 scikit-learn 轮子中得到修复。
Scikit-learn 在 PyPI.org 上发布的 wheel 包现在正式支持 macOS 10.13 及更高版本。
更新日志#
sklearn.metrics
#
Fix 修复了在 NumPy 1.20+ 环境下,
metrics.adjusted_mutual_info_score
和metrics.mutual_info_score
可能出现的数值稳定性问题。 #19179 由 Thomas Fan 提交。
sklearn.semi_supervised
#
Fix
semi_supervised.SelfTrainingClassifier
现在接受元估计器(例如ensemble.StackingClassifier
)。 该估计器的验证在拟合后的估计器上进行,一旦我们知道存在predict_proba
方法。 #19126 由 Guillaume Lemaitre 提交。
版本 0.24.0#
2020年12月
变更的模型#
以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强)或随机采样过程的变化引起的。
Fix
decomposition.KernelPCA
在32位和64位数据之间的一致性得到了改进,当核函数具有小的正特征值时。Fix
decomposition.TruncatedSVD
通过暴露random_state
参数变得确定性。Fix
linear_model.Perceptron
当penalty='elasticnet'
时。Fix 改变了
cluster.KMeans
中心初始化的随机采样过程。
详细变更内容列在下面的更新日志中。
(虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。)
更新日志#
sklearn.base
#
Fix
base.BaseEstimator.get_params
现在如果一个参数不能作为实例属性检索,将引发一个AttributeError
。 之前它会返回None
。
sklearn.calibration
#
Efficiency
calibration.CalibratedClassifierCV.fit
现在支持通过joblib.Parallel
使用参数n_jobs
进行并行化。 #17107 由 Julien Jerphanion 提交。Enhancement 允许
calibration.CalibratedClassifierCV
与预先拟合的pipeline.Pipeline
一起使用,其中数据在开始时不是数组、稀疏矩阵或数据框。 #17546 由 Lucy Liu 提交。Enhancement 向
calibration.CalibratedClassifierCV
添加ensemble
参数,该参数启用通过一组校准器(当前方法)或仅使用所有数据的一个校准器的校准实现(类似于sklearn.svm
估计器中probabilities=True
参数的内置功能)。 #17856 由 Lucy Liu 和 Andrea Esuli 提交。
sklearn.cluster
#
Enhancement
cluster.AgglomerativeClustering
新增参数compute_distances
。当设置为True
时,即使未使用参数distance_threshold
,也会计算并存储集群间的距离于distances_
属性中。此新参数有助于生成树状图可视化,但会引入计算和内存开销。 #17984 由 Michael Riedmann 、Emilie Delattre 和 Francesco Casalegno 提交。Enhancement
cluster.SpectralClustering
和cluster.spectral_clustering
新增关键字参数verbose
。当设置为True
时,将显示额外的消息,有助于调试。 #18052 由 Sean O. Stalley 提交。Enhancement 新增
cluster.kmeans_plusplus
作为公共函数。现在可以单独调用 KMeans++ 初始化来生成
API Change
cluster.MiniBatchKMeans
属性counts_
和init_size_
已弃用,并将在 1.1 版本(0.26 的重命名)中移除。#17864 由 Jérémie du Boisberranger 提供。
sklearn.compose
#
Fix
compose.ColumnTransformer
将跳过列选择器为 False 的布尔列表的转换器。#17616 由 Thomas Fan 提供。Fix
compose.ColumnTransformer
现在在图表显示中显示剩余部分。#18167 由 Thomas Fan 提供。Fix
compose.ColumnTransformer
通过引发错误而不是警告,强制执行fit
和transform
之间列名的严格计数和顺序,遵循弃用周期。#18256 由 Madhura Jayratne 提供。
sklearn.covariance
#
API Change 弃用
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
#
Fix 修复了
cross_decomposition.PLSSVD
中的一个错误,该错误有时会以相反的重要性顺序返回组件。#17095 由 Nicolas Hug 提供。Fix 修复了
cross_decomposition.PLSSVD
、cross_decomposition.CCA
和cross_decomposition.PLSCanonical
中的一个错误,当训练数据为单目标时,会导致est.transform(Y)
的预测不正确。#17095 由 Nicolas Hug 提供。Fix 提高了
cross_decomposition.CCA
的稳定性。#18746 由 Thomas Fan 提供。API Change
n_components
参数的边界现在受到限制:限制在
[1, min(n_samples, n_features, n_targets)]
范围内,适用于转换为
[1, n_features]
或cross_decomposition.PLSRegression
。
在 1.1 版本(0.26 版本的更名)中将引发错误。 #17095 由 Nicolas Hug 提交。
API Change 对于
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 Change 对于
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 提交。Fix
decomposition.TruncatedSVD
通过使用random_state
变得确定性。 它控制底层 ARPACK 求解器的权重初始化。 ##18302 由 Gaurav Desai 和 Ivan Panico 提交。
sklearn.datasets
#
Feature
datasets.fetch_openml
现在验证下载或缓存的 arff 文件的 md5 校验和,以确保数据完整性。 #14800 由 Shashank Singh 和 Joel Nothman 提交。Enhancement
datasets.fetch_openml
现在允许参数as_frame
为 ‘auto’,它会尝试将返回的数据转换为 pandas DataFrame,除非数据是稀疏的。 #17396 由 Jiaxiang 提交。Enhancement
datasets.fetch_covtype
现在支持可选参数as_frame
;当设置为 True 时,返回的 Bunch 对象的
data
和frame
成员是 pandas DataFrame,而target
成员是 pandas Series。
#17491 由 Alex Liang 提交。
Enhancement
datasets.fetch_kddcup99
现在支持可选参数as_frame
;当设置为 True 时,返回的 Bunch 对象的data
和frame
成员是 pandas DataFrame,而target
成员是 pandas Series。 #18280 由 Alex Liang 和 Guillaume Lemaitre 提交。Enhancement
datasets.fetch_20newsgroups_vectorized
现在支持通过设置as_frame=True
加载为 pandasDataFrame
。 #17499 由 Brigitta Sipőcz 和 Guillaume Lemaitre 提交。API Change
datasets.fetch_openml
中as_frame
的默认值从 False 改为 ‘auto’。 #17610 由 Jiaxiang 提交。
sklearn.decomposition
#
API Change 对于
decomposition.NMF
,当init=None
且 n_components <= min(n_samples, n_features) 时,init
值将从'nndsvd'
改为'nndsvda'
(0.26 的重命名)。 #18525 由 Chiara Marmo 提交。Enhancement
decomposition.FactorAnalysis
现在支持可选参数rotation
,其值可以是None
、'varimax'
或'quartimax'
。 #11064 由 Jona Sassenhagen 提交。Enhancement
decomposition.NMF
现在支持可选参数regularization
,其值可以是None
、’components’、’transformation’ 或 ‘both’,与decomposition.NMF.non_negative_factorization
一致。 #17414 由 Bharat Raghunathan 提交。Fix
decomposition.KernelPCA
在 32 位和 64 位数据输入时的一致性现在更好,当核函数具有小的正特征值时。小的正特征值在 32 位数据中未被正确丢弃。 #18149 由 Sylvain Marié 提交。Fix 修复
decomposition.SparseCoder
,使其遵循 scikit-learn API 并支持克隆。属性components_
在 0.24 版本中已弃用,并将在 1.1 版本(0.26 版本的更名)中移除。该属性与dictionary
属性和构造函数参数冗余。#17679 由 Xavier Dupré 贡献。Fix
decomposition.TruncatedSVD.fit_transform
现在始终返回与先调用decomposition.TruncatedSVD.fit
再调用decomposition.TruncatedSVD.transform
相同的结果。#18528 由 Albert Villanova del Moral 和 Ruifeng Zheng 贡献。
sklearn.discriminant_analysis
#
Enhancement
discriminant_analysis.LinearDiscriminantAnalysis
现在可以通过设置covariance_estimator
参数使用自定义协方差估计。#14446 由 Hugo Richard 贡献。
sklearn.ensemble
#
Major Feature
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
现在通过categorical_features
参数原生支持分类特征。#18394 由 Nicolas Hug 和 Thomas Fan 贡献。Feature
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
现在支持staged_predict
方法,允许监控每个阶段。#16985 由 Hao Chun Chang 贡献。Efficiency 在
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
内部使用的树节点中打破循环引用,以便及时进行大型中间数据结构的垃圾回收,并改善fit
中的内存使用。#18334 由 Olivier Grisel 、 Nicolas Hug 、 Thomas Fan 和 Andreas Müller 贡献。Efficiency 直方图初始化现在以并行方式完成,
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
在多核机器上构建大量节点的问题中实现了速度提升。 #18341 由 Olivier Grisel , Nicolas Hug , Thomas Fan 和 Egor Smirnov 贡献。Fix 修复了
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
在predict
中接受uint8
dtype 数据的错误。 #18410 由 Nicolas Hug 贡献。API Change 参数
n_classes_
在ensemble.GradientBoostingRegressor
中已被弃用,并返回1
。 #17702 由 Simona Maggio 贡献。API Change 平均绝对误差 (‘mae’) 在
ensemble.GradientBoostingRegressor
和ensemble.GradientBoostingClassifier
的参数criterion
中已被弃用。 #18326 由 Madhura Jayaratne 贡献。
sklearn.exceptions
#
API Change
exceptions.ChangedBehaviorWarning
和exceptions.NonBLASDotWarning
已被弃用,并将在 1.1 版本(0.26 版本的更名)中移除。 #17804 由 Adrin Jalali 贡献。
sklearn.feature_extraction
#
Enhancement
feature_extraction.DictVectorizer
接受一个分类特征的多个值。 #17367 由 Peng Yu 和 Chiara Marmo 贡献。Fix
feature_extraction.text.CountVectorizer
在提供捕获多个组的自定义标记模式时会引发问题。 #15427 由 Gangesh Gudmalwar 和 Erin R Hoffman 贡献。
sklearn.feature_selection
#
Feature 添加了
feature_selection.SequentialFeatureSelector
实现了前向和后向顺序特征选择。 #6545 由 Sebastian Raschka 贡献,#17159 由 Nicolas Hug 贡献。Feature 新增参数
importance_getter
到feature_selection.RFE
、feature_selection.RFECV
和feature_selection.SelectFromModel
,允许用户指定一个属性名称/路径或一个callable
来从估计器中提取特征重要性。#15361 由 Venkatachalam N 贡献。Efficiency 通过调用
neighbors.KDTree
来计数最近邻,减少了feature_selection.mutual_info_classif
和feature_selection.mutual_info_regression
的内存占用。#17878 由 Noel Rogers 贡献。Enhancement
feature_selection.RFE
支持将n_features_to_select
的数量作为表示要选择的特征百分比的浮点数。 #17090 由 Lisa Schwetlick 和 Marija Vlajic Wheeler 贡献。
sklearn.gaussian_process
#
Enhancement 新增方法
gaussian_process.kernel._check_bounds_params
,在拟合高斯过程后调用,如果超参数的边界太紧,则引发ConvergenceWarning
。 #12638 由 Sylvain Lannuzel 贡献。
sklearn.impute
#
Feature
impute.SimpleImputer
现在支持当strategy='most_frequent'
或strategy='constant'
时使用字符串列表。 #17526 由 Ayako YAGI 和 Juan Carlos Alfaro Jiménez 贡献。Feature 新增方法
impute.SimpleImputer.inverse_transform
,当实例化时使用add_indicator=True
,可以将插补后的数据还原为原始数据。#17612 由 Srimukh Sripada 贡献。Fix 将
impute.IterativeImputer
中min_value
和max_value
参数的默认值替换为-np.inf
和np.inf
,而不是None
。然而,该类的行为并未改变。
自 None
已经默认使用这些值以来,进行了更改。
#16493 由 Darshan N 提交。
Fix
impute.IterativeImputer
将不再尝试设置估计器的random_state
属性,允许与更多外部类一起使用。 #15636 由 David Cortes 提交。Efficiency
impute.SimpleImputer
现在在使用object
类型数组时更快,当在SimpleImputer
中使用strategy='most_frequent'
时。 #18987 由 David Katz 提交。
sklearn.inspection
#
Feature
inspection.partial_dependence
和inspection.plot_partial_dependence
现在支持通过kind
参数计算和绘制个体条件期望(ICE)曲线。 #16619 由 Madhura Jayratne 提交。Feature 在
inspection.permutation_importance
中添加sample_weight
参数。 #16906 由 Roei Kahny 提交。API Change 在
inspection.PartialDependenceDisplay.plot
中的位置参数已被弃用,并在 1.1 版本(0.26 版本的更名)中将报错。 #18293 由 Thomas Fan 提交。
sklearn.isotonic
#
Feature 公开拟合属性
X_thresholds_
和y_thresholds_
,这些属性保存了isotonic.IsotonicRegression
实例的去重插值阈值,用于模型检查目的。 #16289 由 Masashi Kishimoto 和 Olivier Grisel 提交。Enhancement
isotonic.IsotonicRegression
现在接受具有 1 个特征的二维数组作为输入数组。 #17379 由 Jiaxiang 提交。Fix 在确定重复的 X 值时添加容差,以防止
isotonic.IsotonicRegression
预测出无穷值。 #18639 由 Lucy Liu 提交。
sklearn.kernel_approximation
#
Feature 新增类
kernel_approximation.PolynomialCountSketch
, 该类实现了用于多项式核特征映射近似的张量草图算法。 #13003 由 Daniel López Sánchez 贡献。Efficiency
kernel_approximation.Nystroem
现在通过joblib.Parallel
支持并行化, 使用参数n_jobs
。 #18545 由 Laurenz Reitsam 贡献。
sklearn.linear_model
#
Feature
linear_model.LinearRegression
现在在positive
设置为True
时强制系数全为正。 #17578 由 Joseph Knox 、 Nelle Varoquaux 和 Chiara Marmo 贡献。Enhancement
linear_model.RidgeCV
现在支持通过设置alpha_per_target=True
为每个目标分别找到最优的正则化值alpha
。 这仅在使用默认的高效留一交叉验证方案cv=None
时支持。 #6624 由 Marijn van Vliet 贡献。Fix 修复了
linear_model.TheilSenRegressor
中的错误, 当fit_intercept=False
且在拟合过程中有一个特征时,predict
和score
会失败。 #18121 由 Thomas Fan 贡献。Fix 修复了
linear_model.ARDRegression
中的错误, 当normalize=True
且return_std=True
时,predict
会引发错误,因为X_offset_
和X_scale_
未定义。 #18607 由 fhaselbeck 贡献。Fix 在
linear_model.Perceptron
中添加了缺失的l1_ratio
参数, 当penalty='elasticnet'
时使用。这改变了默认值从 0 到 0.15。 #18622 由 Haesun Park 贡献。
sklearn.manifold
#
Efficiency 修复了 #10493 。改进了局部线性嵌入(LLE), 当输入较大时会引发
MemoryError
异常。 #17997 由 Bertrand Maisonneuve 贡献。Enhancement 在
manifold.TSNE
中添加square_distances
参数, 该参数在弃用旧的平方行为期间提供向后兼容性。默认情况下,距离将在 1.1 版本(0.26 版本的更名)中平方, 并且此参数将在 1.3 版本中移除。#17662 由 Joshua Newton 提交。Fix
manifold.MDS
现在正确设置其_pairwise
属性。 #18278 由 Thomas Fan 提交。
sklearn.metrics
#
Feature 添加了
metrics.cluster.pair_confusion_matrix
, 实现由来自两个聚类的元素对引起的混淆矩阵。 #17412 由 Uwe F Mayer 提交。Feature 新增指标
metrics.top_k_accuracy_score
。它是metrics.top_k_accuracy_score
的泛化, 区别在于只要真实标签与k
个最高预测分数之一相关联,预测就被视为正确。metrics.accuracy_score
是k = 1
的特殊情况。 #16625 由 Geoffrey Bolmier 提交。Feature 添加了
metrics.det_curve
以计算检测错误权衡曲线分类指标。 #10591 由 Jeremy Karnowski 和 Daniel Mohns 提交。Feature 添加了
metrics.plot_det_curve
和metrics.DetCurveDisplay
, 以便于绘制 DET 曲线。 #18176 由 Guillaume Lemaitre 提交。Feature 添加了
metrics.mean_absolute_percentage_error
指标和 相关的回归问题评分器。#10708 通过 #15007 由 Ashutosh Hathidara 修复。 评分器和一些实际测试用例取自 #10711 由 Mohamed Ali Jamaoui 提交。Feature 添加了
metrics.rand_score
,实现(未调整的)兰德指数。 #17412 由 Uwe F Mayer 提交。Feature
metrics.plot_confusion_matrix
现在支持在matplotlib图中通过设置colorbar=False
使颜色条可选。#17192 由 Avi Gupta 提供。Enhancement 在
metrics.median_absolute_error
中添加sample_weight
参数。#17225 由 Lucy Liu 提供。Enhancement 在
metrics.plot_precision_recall_curve
中添加pos_label
参数,以便在计算精确度和召回率统计数据时指定正类。#17569 由 Guillaume Lemaitre 提供。Enhancement 在
metrics.plot_roc_curve
中添加pos_label
参数,以便在计算ROC AUC统计数据时指定正类。#17651 由 Clara Matos 提供。Fix 修复了
metrics.classification_report
中的一个错误,该错误在调用output_dict=True
时对0长度值引发AttributeError。#17777 由 Shubhanshu Mishra 提供。Fix 修复了
metrics.classification_report
中的一个错误,该错误在调用output_dict=True
时对0长度值引发AttributeError。#17777 由 Shubhanshu Mishra 提供。Fix 修复了
metrics.jaccard_score
中的一个错误,该错误在调用时没有真实或预测样本时推荐zero_division
参数。#17826 由 Richard Decal 和 Joseph Willard 提供。Fix 修复了
metrics.hinge_loss
中的一个错误,当y_true
缺少在labels
参数中明确提供的某些标签时会发生错误。#17935 由 Cary Goltermann 提供。Fix 修复了接受
pos_label
参数的评分器,并从decision_function
或predict_proba
返回的值计算其指标。以前,当pos_label
不对应于classifier.classes_[1]
时,它们会返回错误值。这在训练时尤其重要。
直接使用字符串标记的目标类别进行分类器分类。 #18114 由 Guillaume Lemaitre 提交。
Fix 修复了
metrics.plot_confusion_matrix
中的错误,当y_true
包含分类器之前未见过的标签,而labels
和display_labels
参数设置为None
时,会发生错误。 #18405 由 Thomas J. Fan 和 Yakov Pchelintsev 提交。
sklearn.model_selection
#
Major Feature 添加了(实验性)参数搜索估计器
model_selection.HalvingRandomSearchCV
和model_selection.HalvingGridSearchCV
,它们实现了连续减半,可以用作model_selection.RandomizedSearchCV
和model_selection.GridSearchCV
的替代品。#13900 由 Nicolas Hug 、 Joel Nothman 和 Andreas Müller 提交。Feature
model_selection.RandomizedSearchCV
和model_selection.GridSearchCV
现在有了score_samples
方法。 #17478 由 Teon Brooks 和 Mohamed Maskani 提交。Enhancement
model_selection.TimeSeriesSplit
有两个新的关键字参数test_size
和gap
。test_size
允许所有折叠的样本外时间序列长度固定。gap
在每个折叠中移除训练集和测试集之间固定数量的样本。 #13204 由 Kyle Kosic 提交。Enhancement
model_selection.permutation_test_score
和model_selection.validation_curve
现在接受fit_params
以传递额外的估计器参数。 #18527 由 Gaurav Dhingra 、Julien Jerphanion 和 Amanda Dsouza 提交。Enhancement
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 贡献。
Enhancement
model_selection.learning_curve
现在接受 fit_params 以传递额外的估计器参数。 #18595 由 Amanda Dsouza 贡献。Fix 修复了当所有分布都是列表且
n_iter
大于唯一参数组合数量时model_selection.ParameterSampler
的len
。 #18222 由 Nicolas Hug 贡献。Fix 修复了当
model_selection.GridSearchCV
和model_selection.RandomizedSearchCV
的一个或多个交叉验证拆分 导致非有限分数时发出警告的问题。 #18266 由 Subrat Sahu 、 Nirvan 和 Arthur Book 贡献。Enhancement
model_selection.GridSearchCV
、model_selection.RandomizedSearchCV
和model_selection.cross_validate
支持scoring
是一个返回 多个指标名称/值关联字典的可调用对象。 #15126 由 Thomas Fan 贡献。
sklearn.multiclass
#
Enhancement
multiclass.OneVsOneClassifier
现在接受 包含缺失值的输入。因此,可以处理缺失值的估计器(可能是包含插补步骤的管道) 可以用作多类包装器的估计器。 #17987 由 Venkatachalam N 贡献。Fix 修复了允许
multiclass.OutputCodeClassifier
在其fit
和predict
方法中接受稀疏输入数据的问题。输入有效性的检查现在委托给基础估计器。 #17233 由 Zolisa Bleki 贡献。
sklearn.multioutput
#
Enhancement
multioutput.MultiOutputClassifier
和
multioutput.MultiOutputRegressor
现在接受包含缺失值的输入。因此,能够处理缺失值的估计器(可能是包含插补步骤的管道,或 HistGradientBoosting 估计器)可以作为多类包装器的估计器使用。#17987 由 Venkatachalam N 贡献。
Fix 修复了在
multioutput.ClassifierChain
中接受order
参数为元组的问题。#18124 由 Gus Brocchini 和 Amanda Dsouza 贡献。
sklearn.naive_bayes
#
Enhancement 在
naive_bayes.CategoricalNB
中添加了min_categories
参数,允许为每个特征指定最小类别数。这使得在训练期间未见过的类别可以被考虑。#16326 由 George Armstrong 贡献。API Change
naive_bayes.MultinomialNB
、naive_bayes.ComplementNB
、naive_bayes.BernoulliNB
和naive_bayes.CategoricalNB
中的属性coef_
和intercept_
现已弃用,并将在 v1.1(0.26 版本的更名)中移除。#17427 由 Juan Carlos Alfaro Jiménez 贡献。
sklearn.neighbors
#
Efficiency 通过避免在 Cython 中设置
n_jobs>1
时意外获取 GIL,并在外部循环中验证数据,加快了neighbors.DistanceMetric
中的seuclidean
、wminkowski
、mahalanobis
和haversine
度量。#17038 由 Wenbo Zhao 贡献。Efficiency
neighbors.NeighborsBase
受益于改进的algorithm = 'auto'
启发式算法。除了之前的规则集外,现在当特征数量超过 15 时,选择brute
,假设 数据固有的维度对于基于树的方法来说太高了。 #17148 由 Geoffrey Bolmier 提供。Fix
neighbors.BinaryTree
在拟合具有不同维度点的数据数组时会引发ValueError
。 #18691 由 Chiara Marmo 提供。Fix 使用数值型
shrink_threshold
的neighbors.NearestCentroid
在拟合所有特征为常数的数据时会引发ValueError
。 #18370 由 Trevor Waite 提供。Fix 在
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
#
Efficiency 神经网络训练和预测现在稍微快了一些。 #17603 、#17604 、#17606 、#17608 、#17609 、#17633 、 #17661 、#17932 由 Alex Henrie 提供。
Enhancement 避免在
neural_network.BernoulliRBM
中将 float32 输入转换为 float64。 #16352 由 Arthur Imbert 提供。Enhancement 在
neural_network.MLPClassifier
和neural_network.MLPRegressor
中支持 32 位计算。 #17759 由 Srimukh Sripada 提供。Fix 修复方法
neural_network.MLPClassifier.fit
在热启动时不迭代到max_iter
的问题。 #18269 由 Norbert Preining 和 Guillaume Lemaitre 提供。
sklearn.pipeline
#
Enhancement 通过
transformer_weights
传递给pipeline.FeatureUnion
的转换器引用 如果不存在于transformer_list
中,将会引发ValueError
。 #17876 由 Cary Goltermann 提交。Fix
pipeline.Pipeline
的一部分现在继承了原始管道的参数(memory
和verbose
)。 #18429 由 Albert Villanova del Moral 和 Paweł Biernat 提交。
sklearn.preprocessing
#
Feature
preprocessing.OneHotEncoder
现在支持将缺失值视为一个类别来处理。#17317 由 Thomas Fan 提交。Feature 为
preprocessing.OrdinalEncoder
添加了一个新的handle_unknown
参数,带有use_encoded_value
选项,以及一个新的unknown_value
参数,以允许在转换过程中处理未知类别并设置未知类别的编码值。 #17406 由 Felix Wick 提交,以及 #18406 由 Nicolas Hug 提交。Feature 为
preprocessing.MinMaxScaler
添加了clip
参数,该参数将测试数据的转换值裁剪到feature_range
。 #17833 由 Yashika Sharma 提交。Feature 为
preprocessing.StandardScaler
添加了sample_weight
参数。允许为每个样本设置单独的权重。#18510 和 #18447 和 #16066 和 #18682 由 Maria Telenczuk 和 Albert Villanova 和 @panpiort8 和 Alex Gramfort 提交。Enhancement
model_selection.GridSearchCV
的详细输出已改进,以提高可读性。#16935 由 Raghav Rajagopalan 和 Chiara Marmo 提交。Enhancement 为
preprocessing.RobustScaler
添加了unit_variance
,该参数使输出数据中的正态分布特征具有方差为 1。#17193 由 Lucy Liu 和 Mabel Villalba 提交。Enhancement 为
preprocessing.KBinsDiscretizer
添加了dtype
参数。 #16335 由 Arthur Imbert 提交。Fix 当
handle_unknown='error'
且drop=None
时,在样本被编码为全零的情况下,sklearn.preprocessing.OneHotEncoder.inverse_transform
方法会引发错误。#14982 由 Kevin Winata 贡献。
sklearn.semi_supervised
#
Major Feature 新增
semi_supervised.SelfTrainingClassifier
,这是一个元分类器, 允许任何监督分类器作为半监督分类器,能够从未标记的数据中学习。#11682 由 Oliver Rausch 和 Patrice Becker 贡献。Fix 修复在使用 Unicode 字符串数据类型时,
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
中的错误编码问题。#15763 由 Thomas Fan 贡献。
sklearn.svm
#
Enhancement 在
svm.SVC
、svm.NuSVC
、svm.SVR
、svm.NuSVR
、svm.OneClassSVM
的fit
、predict
及相关方法中调用 SciPy BLAS API 进行 SVM 核函数计算。#16530 由 Shuhua Fan 贡献。
sklearn.tree
#
Feature
tree.DecisionTreeRegressor
现在支持新的分裂准则'poisson'
, 适用于建模计数数据。#17386 由 Christian Lorentzen 贡献。Enhancement
tree.plot_tree
现在使用 matplotlib 配置设置中的颜色。#17187 由 Andreas Müller 贡献。API Change 参数
X_idx_sorted
在tree.DecisionTreeClassifier.fit
和tree.DecisionTreeRegressor.fit
中已被弃用,并且不再起作用。#17614 由 Juan Carlos Alfaro Jiménez 贡献。
sklearn.utils
#
Enhancement 在
check_estimator
中添加check_methods_sample_order_invariance
,用于检查估计器方法在应用于样本顺序不同的相同数据集时是否保持不变。 #17598 由 Jason Ngo 贡献。Enhancement 在
utils.sparse_func.incr_mean_variance_axis
中添加对权重的支持。 由 Maria Telenczuk 和 Alex Gramfort 贡献。Fix 在
utils.check_array
中对混合类型的稀疏DataFrame引发带有清晰错误信息的ValueError。 #17992 由 Thomas J. Fan 和 Alex Shacked 贡献。Fix 检查当 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.
pwalchessen, 张琦, 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.