版本 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.HistGradientBoostingRegressorfit带有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。