版本1.0#
有关该版本主要亮点的简短描述,请参阅 scikit-learn 1.0的发布亮点 .
换象传说
Major Feature 一些你以前做不到的大事。
Feature 一些你以前做不到的事情。
Efficiency 现有功能现在可能不需要那么多的计算或内存。
Enhancement 一个杂七杂八的小改进。
Fix 以前没有按照记录或合理预期发挥作用的事情现在应该起作用了。
API Change 您需要更改您的代码才能在将来产生相同的效果;或者将来将删除某个功能。
版本1.0.2#
December 2021
Fix
cluster.Birch,feature_selection.RFECV,ensemble.RandomForestRegressor,ensemble.RandomForestClassifier,ensemble.GradientBoostingRegressor,而且ensemble.GradientBoostingClassifier当安装在pandas DataFrame上时,不再发出警告。 #21578 通过 Thomas Fan .
Changelog#
sklearn.cluster#
Fix 修复了无限循环
cluster.SpectralClustering通过将迭代计数器从尝试移动到例外。 #21271 通过 Tyler Martin .
sklearn.datasets#
Fix
datasets.fetch_openml现在线程安全。数据首先下载到临时子文件夹,然后重新命名。 #21833 通过 Siavash Rezazadeh .
sklearn.decomposition#
Fix 修复了目标函数的约束
decomposition.DictionaryLearning,decomposition.MiniBatchDictionaryLearning,decomposition.SparsePCA和decomposition.MiniBatchSparsePCA要呈凸面并与引用的文章相匹配。 #19210 通过 Jérémie du Boisberranger .
sklearn.ensemble#
Fix
ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressor,而且ensemble.RandomTreesEmbedding现在提出一个ValueError当bootstrap=False和max_samples不None. #21295 Haoyin Xu .Fix 解决中的一个错误
ensemble.GradientBoostingClassifier其中指数损失是计算正梯度而不是负梯度。 #22050 通过 Guillaume Lemaitre .
sklearn.feature_selection#
Fix 固定
feature_selection.SelectFromModel通过改善对未设置的基本估计量的支持feature_names_in_. #21991 by Thomas Fan .
sklearn.impute#
Fix 修复中的错误
linear_model.RidgeClassifierCV其中该方法predict正在进行一场argmax根据从decision_function而不是返回多标签指示符矩阵。 #19869 通过 Guillaume Lemaitre .
sklearn.linear_model#
Fix
linear_model.LassoLarsIC现在可以正确计算AIC和BIC。当出现以下情况时,n_features > n_samples以及当没有提供噪音方差时。 #21481 通过 Guillaume Lemaitre 和 Andrés Babino .
sklearn.manifold#
Fix 修复了安装时不必要的错误
manifold.Isomap具有预先计算的密集距离矩阵,其中邻居图具有多个不相连的分量。 #21915 通过 Tom Dupre la Tour .
sklearn.metrics#
Fix 所有
sklearn.metrics.DistanceMetric子类现在正确支持只读缓冲区属性。这修复了1.0.0中引入的相对于0.24.2的回归。 #21694 通过 Julien Jerphanion .Fix 所有
sklearn.metrics.MinkowskiDistance现在接受一个权重参数,这使得可以编写与scipy 1.8和早期版本一致行为的代码。反过来,这意味着所有基于邻居的估计器(除了那些使用algorithm="kd_tree")现在接受重量参数,metric="minkowski"以产生始终与scipy.spatial.distance.cdist. #21741 通过 Olivier Grisel .
sklearn.multiclass#
Fix
multiclass.OneVsRestClassifier.predict_proba当适合常整目标时不会出错。 #21871 通过 Thomas Fan .
sklearn.neighbors#
Fix
neighbors.KDTree和neighbors.BallTree正确支持只读缓冲区属性。 #21845 通过 Thomas Fan .
sklearn.preprocessing#
Fix 修复了与NumPy 1.22的兼容性错误
preprocessing.OneHotEncoder. #21517 通过 Thomas Fan .
sklearn.tree#
Fix 防止
tree.plot_tree从图形的边界画出。 #21917 通过 Thomas Fan .Fix 当泡菜在不同比特度的平台上生成时,支持加载决策树模型的泡菜。一个典型的例子是在64位机器上训练和腌制模型,然后将模型加载到32位机器上进行预测。 #21552 通过 Loïc Estève .
sklearn.utils#
Fix
utils.estimator_html_repr现在,将逸出生成的HTML中的所有估计器描述。 #21493 通过 Aurélien Geron .
版本1.0.1#
October 2021
固定模型#
Fix 当将以下类中的不适合方法安装在具有有效要素名称的数据框架上时,不会引发用户警告:
covariance.EllipticEnvelope,ensemble.IsolationForest,ensemble.AdaBoostClassifier,neighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor. #21199 通过 Thomas Fan .
sklearn.calibration#
Fix 固定
calibration.CalibratedClassifierCV考虑到sample_weight当计算基本估计器预测时,ensemble=False. #20638 通过 Julien Bohné .Fix 修复了中的一个错误
calibration.CalibratedClassifierCV与method="sigmoid"那是忽视了sample_weight在计算Bayesian先验时。 #21179 通过 Guillaume Lemaitre .
sklearn.cluster#
Fix 修复了中的一个错误
cluster.KMeans,确保稀疏和密集输入之间的可重复性和等效性。 #21195 通过 Jérémie du Boisberranger .
sklearn.ensemble#
Fix 修复了在极少数情况下可能会产生segfault的错误
ensemble.HistGradientBoostingClassifier和ensemble.HistGradientBoostingRegressor. #21130 Christian Lorentzen .
sklearn.gaussian_process#
Fix 计算
y_std正确使用多目标输入sklearn.gaussian_process.GaussianProcessRegressor允许在多目标场景中进行适当的规范化。 #20761 通过 Patrick de C. T. R. Ferreira .
sklearn.feature_extraction#
Efficiency 修复了1.0.0版中引入的效率回归
transform方法feature_extraction.text.CountVectorizer其不再检查所提供的词汇表中的字符串。 #21251 通过 Jérémie du Boisberranger .Fix 修复了中的一个错误
feature_extraction.text.CountVectorizer和feature_extraction.text.TfidfVectorizer当“min_idf”或“max_idf”是大于1的浮点数时,通过引发错误。 #20752 通过 Alek Lefebvre .
sklearn.linear_model#
Fix 提高稳定性
linear_model.LassoLars适用于不同版本的Openbox。 #21340 通过 Thomas Fan .Fix
linear_model.LogisticRegression现在,当求解器不支持int64索引的稀疏矩阵时,会引发更好的错误消息。 #21093 通过 Tom Dupre la Tour .
sklearn.neighbors#
Fix
neighbors.KNeighborsClassifier,neighbors.KNeighborsRegressor,neighbors.RadiusNeighborsClassifier,neighbors.RadiusNeighborsRegressor与metric="precomputed"raises an error forbsranddoksparse matrices in methods:fit,kneighborsandradius_neighbors, due to handling of explicit zeros inbsranddoksparse graph formats. #21199 by Thomas Fan .
sklearn.pipeline#
Fix
pipeline.Pipeline.get_feature_names_out将要素名称从管道的一步正确传递到下一步。 #21351 通过 Thomas Fan .
sklearn.svm#
Fix
svm.SVC和svm.SVR检查其内部表示中的不一致性,并引发错误而不是segfaulting。此修复还解决了 CVE-2020-28975 . #21336 通过 Thomas Fan .
sklearn.utils#
Enhancement
utils.validation._check_sample_weight可以对样本权重进行非负性检查。可以使用only_non_negative bool参数打开它。检查非负权重的估计器被更新:linear_model.LinearRegression(here之前的错误消息具有误导性),ensemble.AdaBoostClassifier,ensemble.AdaBoostRegressor,neighbors.KernelDensity. #20880 通过 Guillaume Lemaitre 和 András Simon .Fix 解决中的一个错误
sklearn.utils.metaestimators.if_delegate_has_method其中对属性的底层检查不适用于NumPy数组。 #21145 通过 Zahlii .
杂项#
Fix 在没有要素名称的数据集上匹配估计器(之前在具有要素名称的数据集上匹配)不再保留存储在
feature_names_in_属性 #21389 通过 Jérémie du Boisberranger .
版本1.0.0#
September 2021
最小依赖#
scikit-learn的1.0.0版本需要Python 3.7+、numpy 1.14.6+和scipy 1.1.0+。可选的最小依赖项是matplotlib 2.2.2+。
强制仅关键字参数#
为了促进库的清晰和明确的使用,大多数构造函数和函数参数现在必须作为关键字参数传递(即使用 param=value syntax) instead of positional. If a keyword-only parameter is used as positional, a TypeError is now raised. #15005 #20002 by Joel Nothman , Adrin Jalali , Thomas Fan , Nicolas Hug ,而且 Tom Dupre la Tour .看到 SLEP009 了解更多详细信息。
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
Fix
manifold.TSNE现在避免了亲和力矩阵计算期间的数字下溢问题。Fix
manifold.Isomap现在沿着一些最小距离对连接邻居图的断开组件,而不是将每个无限距离都更改为零。Fix 的分裂标准
tree.DecisionTreeClassifier和tree.DecisionTreeRegressor可能会受到四舍五入错误处理中的修复的影响。以前可能会发生一些额外的虚假分裂。Fix
model_selection.train_test_split与stratify参数和model_selection.StratifiedShuffleSplit可能会导致略有不同的结果。
详细信息见下面的变更日志。
(虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。
Changelog#
API Change 使用平方误差的选项
loss和criterion参数更加一致。首选方法是将该值设置为"squared_error".旧选项名称仍然有效,可以生成相同的模型,但已被弃用,并将在1.2版本中删除。 #19310 通过 Christian Lorentzen .为
ensemble.ExtraTreesRegressor,criterion="mse"已弃用,请使用"squared_error"而现在是默认值。为
ensemble.GradientBoostingRegressor,loss="ls"已弃用,请使用"squared_error"而现在是默认值。为
ensemble.RandomForestRegressor,criterion="mse"已弃用,请使用"squared_error"而现在是默认值。为
ensemble.HistGradientBoostingRegressor,loss="least_squares"已弃用,请使用"squared_error"而现在是默认值。为
linear_model.RANSACRegressor,loss="squared_loss"已弃用,请使用"squared_error"而不是.为
linear_model.SGDRegressor,loss="squared_loss"已弃用,请使用"squared_error"而现在是默认值。为
tree.DecisionTreeRegressor,criterion="mse"已弃用,请使用"squared_error"而现在是默认值。为
tree.ExtraTreeRegressor,criterion="mse"已弃用,请使用"squared_error"而现在是默认值。
API Change 通过使用绝对误差的选项
loss和criterion参数更加一致。首选方法是将该值设置为"absolute_error".旧选项名称仍然有效,可以生成相同的模型,但已被弃用,并将在1.2版本中删除。 #19733 通过 Christian Lorentzen .为
ensemble.ExtraTreesRegressor,criterion="mae"已弃用,请使用"absolute_error"而不是.为
ensemble.GradientBoostingRegressor,loss="lad"已弃用,请使用"absolute_error"而不是.为
ensemble.RandomForestRegressor,criterion="mae"已弃用,请使用"absolute_error"而不是.为
ensemble.HistGradientBoostingRegressor,loss="least_absolute_deviation"已弃用,请使用"absolute_error"而不是.为
linear_model.RANSACRegressor,loss="absolute_loss"已弃用,请使用"absolute_error"而现在是默认值。为
tree.DecisionTreeRegressor,criterion="mae"已弃用,请使用"absolute_error"而不是.为
tree.ExtraTreeRegressor,criterion="mae"已弃用,请使用"absolute_error"而不是.
API Change
np.matrixusage is deprecated in 1.0 and will raise aTypeErrorin 1.2. #20165 by Thomas Fan .API Change get_feature_names_out 已添加到Transformer API中以获取输出功能的名称。
get_feature_nameshas in turn been deprecated. #18444 by Thomas Fan .API Change 所有估计器存储
feature_names_in_when fitted on pandas Dataframes. These feature names are compared to names seen in non-fitmethods, e.g.transformand will raise aFutureWarningif they are not consistent, see also scikit-learn 1.0的发布亮点. TheseFutureWarnings will becomeValueErrors in 1.2. #18010 by Thomas Fan .
sklearn.base#
Fix
config_context现在是线程安全的。 #18736 通过 Thomas Fan .
sklearn.calibration#
Feature
calibration.CalibrationDisplay添加以绘制校准曲线。 #17443 通过 Lucy Liu .Fix 的
predict和predict_proba方法calibration.CalibratedClassifierCV现在可以在预安装的管道上正确使用。 #19641 通过 Alek Lefebvre .Fix 修复了使用
ensemble.VotingClassifier作为base_estimator在calibration.CalibratedClassifierCV. #20087 通过 Clément Fauchereau .
sklearn.cluster#
Efficiency 的
"k-means++"初始化cluster.KMeans和cluster.MiniBatchKMeans现在速度更快,尤其是在多核设置中。 #19002 通过 Jon Crall 和 Jérémie du Boisberranger .Efficiency
cluster.KMeans与algorithm='elkan'现在在多核设置中速度更快。 #19052 通过 Yusuke Nagasaka .Efficiency
cluster.MiniBatchKMeans现在在多核设置中速度更快。 #17622 通过 Jérémie du Boisberranger .Efficiency
cluster.OPTICS现在可以使用memory参数. #19024 通过 Frankie Robertson .Enhancement 的
predict和fit_predict方法cluster.AffinityPropagation现在接受输入数据的稀疏数据类型。 #20117 通过 Venkatachalam NatchiappanFix 修复了中的一个错误
cluster.MiniBatchKMeans其中,当输入稀疏时,样本权重被部分忽略。 #17622 通过 Jérémie du Boisberranger .Fix 基于中心变化的改进收敛检测
cluster.MiniBatchKMeans这几乎永远无法实现。 #17622 通过 Jérémie du Boisberranger .Fix
cluster.AgglomerativeClustering现在支持只读内存映射数据集。 #19883 通过 Julien Jerphanion .Fix
cluster.AgglomerativeClustering当预先计算连接性和亲和力并且已连接的组件数量大于1时,正确连接组件。 #20597 通过 Thomas Fan .Fix
cluster.FeatureAgglomeration不采纳**params夸格在fit功能不再存在,从而导致更简洁的错误消息。 #20899 通过 Adam Li .Fix 修复了中的一个错误
cluster.KMeans,确保稀疏和密集输入之间的可重复性和等效性。 #20200 通过 Jérémie du Boisberranger .API Change
cluster.Birch属性,fit_andpartial_fit_, are deprecated and will be removed in 1.2. #19297 by Thomas Fan .API Change the default value for the
batch_sizeparameter ofcluster.MiniBatchKMeanswas changed from 100 to 1024 due to efficiency reasons. Then_iter_attribute ofcluster.MiniBatchKMeansnow reports the number of started epochs and then_steps_attribute reports the number of mini batches processed. #17622 by Jérémie du Boisberranger.API Change
cluster.spectral_clustering当通过a时,会出现改进的错误np.matrix. #20560 by Thomas Fan .
sklearn.compose#
Enhancement
compose.ColumnTransformer现在记录每个Transformer的输出output_indices_. #18393 通过 Luca Bittarello .Enhancement
compose.ColumnTransformer现在允许DataFrame输入以更改的顺序显示其列,transform. Further, columns that are dropped will not be required in transform, and additional columns will be ignored ifremainder='drop'. #19263 by Thomas Fan .Enhancement 添加
**predict_params关键字参数compose.TransformedTargetRegressor.predict将关键字参数传递给回归器。 #19244 通过 Ricardo .Fix
compose.ColumnTransformer.get_feature_names支持其任何转换器返回的非字符串功能名称。然而,请注意,get_feature_names已弃用,请使用get_feature_names_out而不是. #18459 通过 Albert Villanova del Moral 和 Alonso Silva Allende .Fix
compose.TransformedTargetRegressor现在使用足够的Transformer来获取nD目标。 #18898 通过 Oras Phongpanagnam .API Change 添加
verbose_feature_names_outtocompose.ColumnTransformer. This flag controls the prefixing of feature names out in get_feature_names_out. #18444 and #21080 by Thomas Fan .
sklearn.covariance#
Fix 添加数组检查
covariance.ledoit_wolf和covariance.ledoit_wolf_shrinkage. #20416 通过 Hugo Defois .API Change 放弃中的以下键
cv_results_:'mean_score','std_score', and'split(k)_score'in favor of'mean_test_score''std_test_score', and'split(k)_test_score'. #20583 by Thomas Fan .
sklearn.datasets#
Enhancement
datasets.fetch_openml现在在返回熊猫rame时支持具有缺失值的类别。 #19365 通过 Thomas Fan 和 Amanda Dsouza 和 EL-ATEIF Sara .Enhancement
datasets.fetch_kddcup99当缓存的文件无效时,引发更好的消息。 #19669 Thomas Fan .Enhancement Replace usages of
__file__related to resource file I/O withimportlib.resourcesto avoid the assumption that these resource files (e.g.iris.csv) already exist on a filesystem, and by extension to enable compatibility with tools such asPyOxidizer. #20297 by Jack Liu.Fix 缩短openml测试中的数据文件名,以更好地支持在Windows上安装及其文件名默认260个字符限制。 #20209 通过 Thomas Fan .
Fix
datasets.fetch_kddcup99返回收件箱时return_X_y=Trueandas_frame=True. #19011 by Thomas Fan .API Change 不赞成
datasets.load_bostonin 1.0 and it will be removed in 1.2. Alternative code snippets to load similar datasets are provided. Please report to the docstring of the function for details. #20729 by Guillaume Lemaitre .
sklearn.decomposition#
Enhancement 添加了一个新的近似求解器(随机化MVD,可与
eigen_solver='randomized')到decomposition.KernelPCA.当样本数量远远大于所需的分量数量时,这会显着加速计算。 #12069 通过 Sylvain Marié .Fix 修复聚集布尔数据时不正确的多个数据转换警告。 #19046 通过 Surya Prakash .
Fix 固定
decomposition.dict_learning,使用者decomposition.DictionaryLearning,以确保输出的确定性。通过翻转用于初始化代码的MVD输出的符号来实现。 #18433 通过 Bruno Charron .Fix 修复了中的一个错误
decomposition.MiniBatchDictionaryLearning,decomposition.MiniBatchSparsePCA和decomposition.dict_learning_online其中字典的更新不正确。 #19198 通过 Jérémie du Boisberranger .Fix 修复了中的一个错误
decomposition.DictionaryLearning,decomposition.SparsePCA,decomposition.MiniBatchDictionaryLearning,decomposition.MiniBatchSparsePCA,decomposition.dict_learning和decomposition.dict_learning_online其中字典更新期间未使用的原子的重新启动没有按预期工作。 #19198 通过 Jérémie du Boisberranger .API Change 在
decomposition.DictionaryLearning,decomposition.MiniBatchDictionaryLearning,decomposition.dict_learning和decomposition.dict_learning_online,transform_alpha将等于alpha从1.2版本开始,默认情况下不是1.0 #19159 通过 Benoît Malézieux .API Change 删除变量名称
decomposition.KernelPCA以提高可读性。lambdas_和alphas_已更名为eigenvalues_和eigenvectors_,分别。lambdas_和alphas_已弃用,并将在1.2中删除。 #19908 通过 Kei Ishikawa .API Change 的
alpha和regularization参数decomposition.NMF和decomposition.non_negative_factorization已弃用,并将在1.2中删除。使用新参数alpha_W和alpha_H而不是. #20512 通过 Jérémie du Boisberranger .
sklearn.dummy#
API Change 属性
n_features_in_indummy.DummyRegressoranddummy.DummyRegressoris deprecated and will be removed in 1.2. #20960 by Thomas Fan .
sklearn.ensemble#
Enhancement
HistGradientBoostingClassifier和HistGradientBoostingRegressor在决定BEP使用的线程数时,请考虑cgroups配额。这可以避免在docker容器中使用这些类时过度订阅导致的性能问题。 #20477 通过 Thomas Fan .Enhancement
HistGradientBoostingClassifier和HistGradientBoostingRegressor不再是实验性的。它们现在被认为是稳定的,并且与所有其他估计器一样受到相同的弃用周期。 #19799 通过 Nicolas Hug .Enhancement 的HTML呈现效果
ensemble.StackingClassifier和ensemble.StackingRegressor. #19564 通过 Thomas Fan .Enhancement 添加了Poisson标准
ensemble.RandomForestRegressor. #19836 通过 Brian Sun .Fix 不允许计算袋外(OSC)分数
ensemble.RandomForestClassifier和ensemble.ExtraTreesClassifier具有多类多输出目标,因为scikit-learn不提供任何支持此类目标的指标。执行了额外的私人重构。 #19162 通过 Guillaume Lemaitre .Fix 提高权重提升的数字精度
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor以避免下溢。 #10096 通过 Fenil Suchak .Fix 修复了参数的范围
max_samples是(0.0, 1.0]在ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,在哪里max_samples=1.0被解释为使用所有n_samples用于引导。 #20159 通过 @murata-yu .Fix 修复了中的一个错误
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor其中sample_weight参数在期间被覆盖fit. #20534 通过 Guillaume Lemaitre .API Change 去除
tol=Noneoption inensemble.HistGradientBoostingClassifierandensemble.HistGradientBoostingRegressor. Please usetol=0for the same behavior. #19296 by Thomas Fan .
sklearn.feature_extraction#
Fix 修复了中的一个错误
feature_extraction.text.HashingVectorizer其中某些输入字符串将导致变换数据中的负索引。 #19035 通过 Liu Yu .Fix 修复了中的一个错误
feature_extraction.DictVectorizer通过引发具有不支持的值类型的错误。 #19520 通过 Jeff Zhao .Fix 修复了中的一个错误
feature_extraction.image.img_to_graph和feature_extraction.image.grid_to_graph其中单个连接的分量没有得到正确处理,导致错误的点索引。 #18964 通过 Bertrand Thirion .Fix 提出警告
feature_extraction.text.CountVectorizer与lowercase=True当存在带有大写字符的词汇条目时,以避免生成的特征载体中的无声缺失。 #19401 通过 Zito Relova
sklearn.feature_selection#
Feature
feature_selection.r_regression计算特征和目标之间的Pearson R相关系数。 #17169 通过 Dmytro Lituiev 和 Julien Jerphanion .Enhancement
feature_selection.RFE.fit接受直接传递给估计器的额外估计器参数fit法 #20380 通过 Iván Pulido , Felipe Bidu , Gil Rutter ,而且 Adrin Jalali .Fix 修复中的错误
isotonic.isotonic_regression其中sample_weight用户传递的内容在期间被覆盖fit. #20515 通过 Carsten Allefeld .Fix 变化
feature_selection.SequentialFeatureSelector允许无监督建模,以便fit签名不需要做任何y验证并允许y=None. #19568 通过 Shyam Desai .API Change 提出错误
feature_selection.VarianceThreshold当方差阈值为负时。 #20207 通过 Tomohiro EndoAPI Change 不赞成
grid_scores_赞成平分cv_results_在feature_selection.RFECV.grid_scores_将在1.2版本中删除。 #20161 通过 Shuhei Kayawari 和 @arka204 .
sklearn.inspection#
Enhancement 添加
max_samples参数inspection.permutation_importance.它能够绘制样本的子集来计算排列重要性。在评估大型数据集的特征重要性时,这对于保持该方法的易于处理很有用。 #20431 通过 Oliver Pfaffel .Enhancement 添加kwargs以在部分相关图中分别格式化ICE和PD线
inspection.plot_partial_dependence和inspection.PartialDependenceDisplay.plot. #19428 通过 Mehdi Hamoumi .Fix 允许多个评分者输入
inspection.permutation_importance. #19411 通过 Simona Maggio .API Change
inspection.PartialDependenceDisplay公开类方法:from_estimator.inspection.plot_partial_dependenceis deprecated in favor of the class method and will be removed in 1.2. #20959 by Thomas Fan .
sklearn.kernel_approximation#
Fix Fix a bug in
kernel_approximation.Nystroemwhere the attributecomponent_indices_did not correspond to the subset of sample indices used to generate the approximated kernel. #20554 by Xiangyin Kong.
sklearn.linear_model#
Major Feature 添加
linear_model.QuantileRegressor它实现具有L1罚分的线性分位数回归。 #9978 通过 David Dale 和 Christian Lorentzen .Feature 新
linear_model.SGDOneClassSVM提供线性单类支持者支持者的SAD实现。与核逼近技术相结合,该实现逼近了核化的一类支持者的解,同时受益于样本数量的线性复杂性。 #10027 通过 Albert Thomas .Feature 添加
sample_weight参数以linear_model.LassoCV和linear_model.ElasticNetCV. #16449 通过 Christian Lorentzen .Feature Added new solver
lbfgs(available withsolver="lbfgs") andpositiveargument tolinear_model.Ridge. Whenpositiveis set toTrue, forces the coefficients to be positive (only supported bylbfgs). #20231 by Toshihiro Nakae.Efficiency 执行
linear_model.LogisticRegression使用时已针对密集矩阵进行了优化solver='newton-cg'和multi_class!='multinomial'. #19571 通过 Julien Jerphanion .Enhancement
fit方法保留numpy.float32的dypelinear_model.Lars,linear_model.LassoLars,linear_model.LassoLars,linear_model.LarsCV和linear_model.LassoLarsCV. #20155 通过 Takeshi Oura .Enhancement 用户提供的gram矩阵通过
precompute论点 #19004 通过 Adam Midvidy .Fix
linear_model.ElasticNet.fit不再修改sample_weightin place. #19055 by Thomas Fan .Fix
linear_model.Lasso和linear_model.ElasticNet不再有dual_gap_不符合他们的目标。 #19172 通过 Mathurin MassiasFix
sample_weight现在在线性模型中充分考虑了当normalize=True用于特征居中和特征缩放。 #19426 通过 Alexandre Gramfort 和 Maria Telenczuk .Fix Points with residuals equal to
residual_thresholdare now considered as inliers forlinear_model.RANSACRegressor. This allows fitting a model perfectly on some datasets whenresidual_threshold=0. #19499 by Gregory Strubel.Fix 样本权重不变性
linear_model.Ridge定格在 #19616 通过 Oliver Grisel 和 Christian Lorentzen .Fix 字典
params在linear_model.enet_path和linear_model.lasso_path应仅包含坐标下降求解器的参数。否则,将引发错误。 #19391 通过 Shao Yang Hong .API Change 提出警告
linear_model.RANSACRegressor从1.2版本开始,min_samples需要为除linear_model.LinearRegression. #19390 通过 Shao Yang Hong .API Change : The parameter
normalizeoflinear_model.LinearRegressionis deprecated and will be removed in 1.2. Motivation for this deprecation:normalizeparameter did not take any effect iffit_interceptwas set to False and therefore was deemed confusing. The behavior of the deprecatedLinearModel(normalize=True)can be reproduced with aPipelinewithLinearModel(whereLinearModelisLinearRegression,Ridge,RidgeClassifier,RidgeCVorRidgeClassifierCV) as follows:make_pipeline(StandardScaler(with_mean=False), LinearModel()). Thenormalizeparameter inLinearRegressionwas deprecated in #17743 by Maria Telenczuk and Alexandre Gramfort. Same forRidge,RidgeClassifier,RidgeCV, andRidgeClassifierCV, in: #17772 by Maria Telenczuk and Alexandre Gramfort. Same forBayesianRidge,ARDRegressionin: #17746 by Maria Telenczuk. Same forLasso,LassoCV,ElasticNet,ElasticNetCV,MultiTaskLasso,MultiTaskLassoCV,MultiTaskElasticNet,MultiTaskElasticNetCV, in: #17785 by Maria Telenczuk and Alexandre Gramfort.API Change 的
normalize参数OrthogonalMatchingPursuit和OrthogonalMatchingPursuitCV在1.2中默认为False,并在1.4中删除。 #17750 通过 Maria Telenczuk 和 Alexandre Gramfort .相同LarsLarsCVLassoLarsLassoLarsCVLassoLarsIC,在 #17769 通过 Maria Telenczuk 和 Alexandre Gramfort .API Change 关键字验证已从
__init__andset_paramstofitfor the following estimators conforming to scikit-learn's conventions:SGDClassifier,SGDRegressor,SGDOneClassSVM,PassiveAggressiveClassifier, andPassiveAggressiveRegressor. #20683 by Guillaume Lemaitre .
sklearn.manifold#
Enhancement 实施
'auto'启发式的learning_rate在manifold.TSNE.它将在1.2中成为默认状态。默认初始化将更改为pca在1.2。PCA初始化将在1.2中进行缩放,使其具有标准差1 e-4。 #19491 通过 Dmitry Kobak .Fix 更改数值精度,以防止在计算
manifold.TSNE. #19472 通过 Dmitry Kobak .Fix
manifold.Isomap现在使用scipy.sparse.csgraph.shortest_pathto compute the graph shortest path. It also connects disconnected components of the neighbors graph along some minimum distance pairs, instead of changing every infinite distances to zero. #20531 by Roman Yurchak 和 Tom Dupre la Tour .Fix 减少lobpcg调用中的数字默认容差
manifold.spectral_embedding以防止数字不稳定。 #21194 通过 Andrew Knyazev .
sklearn.metrics#
Feature
metrics.mean_pinball_loss揭示分位数回归的弹球损失。 #19415 通过 Xavier Dupré 和 Oliver Grisel .Feature
metrics.d2_tweedie_score使用功效参数计算Tweedie偏差的D#2回归评分power.这是对r2_score并可以解释为被解释的Tweedie异常行为的百分比。 #17036 通过 Christian Lorentzen .Feature
metrics.mean_squared_log_errornow supportssquared=False. #20326 by Uttam kumar.Efficiency 提高的速度
metrics.confusion_matrix当标签是完整的时。 #9843 通过 Jon Crall .Enhancement 在中引发错误的修复
metrics.hinge_loss当pred_decision是1d,而它是多类分类或何时pred_decision参数与labels参数. #19643 通过 Pierre Attard .Fix
metrics.ConfusionMatrixDisplay.plot使用正确的颜色映射最大值。 #19784 通过 Thomas Fan .Fix 零样本
sample_weight值不会影响结果metrics.det_curve,metrics.precision_recall_curve和metrics.roc_curve. #18328 通过 Albert Villanova del Moral 和 Alonso Silva Allende .Fix 避免溢出
metrics.adjusted_rand_score有大量的数据。 #20312 通过 Divyanshu Deoli .API Change
metrics.ConfusionMatrixDisplay公开两个类方法from_estimator和from_predictions允许使用估计器或预测创建混淆矩阵图。metrics.plot_confusion_matrixis deprecated in favor of these two class methods and will be removed in 1.2. #18543 by Guillaume Lemaitre .API Change
metrics.PrecisionRecallDisplay公开两个类方法from_estimator和from_predictions允许使用估计器或预测创建精确召回曲线。metrics.plot_precision_recall_curveis deprecated in favor of these two class methods and will be removed in 1.2. #20552 by Guillaume Lemaitre .API Change
metrics.DetCurveDisplay公开两个类方法from_estimator和from_predictions允许使用估计器或预测创建混淆矩阵图。metrics.plot_det_curveis deprecated in favor of these two class methods and will be removed in 1.2. #19278 by Guillaume Lemaitre .
sklearn.mixture#
Fix 确保在出现分歧的情况下适当设置最佳参数
mixture.GaussianMixture和mixture.BayesianGaussianMixture. #20030 通过 Tingshan Liu 和 Benjamin Pedigo .
sklearn.model_selection#
Feature 添加
model_selection.StratifiedGroupKFold,这结合了model_selection.StratifiedKFold和model_selection.GroupKFold,提供拆分数据的能力,以保留每次拆分中的类分布,同时将每个组保持在单个拆分中。 #18649 通过 Leandro Hermida 和 Rodion Martynov .Enhancement 对于交叉验证中的每次拆分配合失败,在主过程中仅警告一次。 #20619 通过 Loïc Estève
Enhancement 的
model_selection.BaseShuffleSplit基本类现在是公开的。 #20056 通过 @pabloduque0 .Fix 避免过早溢出
model_selection.train_test_split. #20904 通过 Tomasz Jakubek .
sklearn.naive_bayes#
Fix 的
fit和partial_fit离散朴素Bayes分类器的方法 (naive_bayes.BernoulliNB,naive_bayes.CategoricalNB,naive_bayes.ComplementNB,而且naive_bayes.MultinomialNB)现在可以正确处理训练集中单个类的退化情况。 #18925 通过 David Poznik .API Change 属性
sigma_现已在naive_bayes.GaussianNB并将在1.2中删除。使用var_而不是. #18842 通过 Hong Shao Yang .
sklearn.neighbors#
Enhancement 建立
neighbors.KDTree和neighbors.BallTree针对最坏情况的时间复杂性进行了改进, \(\mathcal{O}(n^2)\) 到 \(\mathcal{O}(n)\) . #19473 通过 jiefangxuanyan 和 Julien Jerphanion .Fix
neighbors.DistanceMetric子类现在支持只读内存映射数据集。 #19883 通过 Julien Jerphanion .Fix
neighbors.NearestNeighbors,neighbors.KNeighborsClassifier,neighbors.RadiusNeighborsClassifier,neighbors.KNeighborsRegressor和neighbors.RadiusNeighborsRegressor不验证weightsin_ _初始化__'并验证 `weights在fit而不是. #20072 通过 Juan Carlos Alfaro Jiménez .API Change 参数
kwargs的neighbors.RadiusNeighborsClassifier已被弃用并将在1.2中删除。 #20842 通过 Juan Martín Loyola .
sklearn.neural_network#
Fix
neural_network.MLPClassifier和neural_network.MLPRegressor现在,当从腌制文件加载时,可以正确支持继续训练。 #19631 通过 Thomas Fan .
sklearn.pipeline#
API Change 的
predict_proba和predict_log_proba方法pipeline.Pipeline现在支持将预测kwargs传递给最终估计器。 #19790 通过 Christopher Flynn .
sklearn.preprocessing#
Feature 新
preprocessing.SplineTransformer是一个用于生成B样条的特征预处理工具,由多项参数化degree样条线的数量、结的数量n_knots以及打结定位策略knots. #18368 通过 Christian Lorentzen .preprocessing.SplineTransformer还通过extrapolation论点 #19483 通过 Malte Londschien .preprocessing.SplineTransformer支持结位置策略的样本权重"quantile". #20526 通过 Malte Londschien .Feature
preprocessing.OrdinalEncoder默认支持传递缺失的值。 #19069 通过 Thomas Fan .Feature
preprocessing.OneHotEncoder现在支持handle_unknown='ignore'and dropping categories. #19041 by Thomas Fan .Feature
preprocessing.PolynomialFeatures现在支持传递一个数组degree,即degree=(min_degree, max_degree). #20250 通过 Christian Lorentzen .Efficiency
preprocessing.StandardScaler速度更快,内存效率更高。 #20652 通过 Thomas Fan .Efficiency 改变
algorithm论据cluster.KMeans在preprocessing.KBinsDiscretizer从auto到full. #19934 通过 Hleb Levitski .Efficiency 执行
fit为preprocessing.PolynomialFeaturesTransformer现在更快了。这在大的稀疏输入上尤其明显。 #19734 通过 Fred Robinson .Fix 的
preprocessing.StandardScaler.inverse_transform现在,当输入数据为1D时,方法会引发错误。 #19752 通过 Zhehao Liu .Fix
preprocessing.scale,preprocessing.StandardScaler类似的缩放器检测接近恒定的特征,以避免将它们缩放到非常大的值。当对具有样本权重的恒定列的稀疏数据使用缩放器时,这个问题尤其会发生,在这种情况下,通常会禁用居中。 #19527 通过 Oliver Grisel 和 Maria Telenczuk 和 #19788 通过 Jérémie du Boisberranger .Fix
preprocessing.StandardScaler.inverse_transform现在可以正确处理integer dtypes。 #19356 通过 @makoeppel .Fix
preprocessing.OrdinalEncoder.inverse_transform不支持稀疏矩阵并引发适当的错误消息。 #19879 通过 Guillaume Lemaitre .Fix 的
fit方法preprocessing.OrdinalEncoder当handle_unknown='ignore'以及未知类别被给予fit. #19906 通过 Zhehao Liu .Fix 修复回归
preprocessing.OrdinalEncoder其中,当转换为C类型时,较大的Python数字会因溢出而引发错误 (np.float64ornp.int64). #20727 by Guillaume Lemaitre .Fix
preprocessing.FunctionTransformer不设置n_features_in_based on the input toinverse_transform. #20961 by Thomas Fan .API Change The
n_input_features_attribute ofpreprocessing.PolynomialFeaturesis deprecated in favor ofn_features_in_and will be removed in 1.2. #20240 by Jérémie du Boisberranger.
sklearn.svm#
API Change 参数
**params的svm.OneClassSVM.fit已被弃用并将在1.2中删除。 #20843 通过 Juan Martín Loyola .
sklearn.tree#
Enhancement 添加
fontname论点tree.export_graphviz对于非英语字符。 #18959 通过 Zero 和 wstates .Fix 提高的兼容性
tree.plot_tree具有高分辨率屏幕。 #20023 通过 Thomas Fan .Fix 修复了中的一个错误
tree.DecisionTreeClassifier,tree.DecisionTreeRegressor其中节点可能会被拆分,而不应该是由于舍入错误处理不当造成的。 #19336 通过 Jérémie du Boisberranger .API Change The
n_features_attribute oftree.DecisionTreeClassifier,tree.DecisionTreeRegressor,tree.ExtraTreeClassifierandtree.ExtraTreeRegressoris deprecated in favor ofn_features_in_and will be removed in 1.2. #20272 by Jérémie du Boisberranger.
sklearn.utils#
Enhancement 放弃的默认值
random_state=0在randomized_svd.从1.2开始,默认值为random_state将被设置为None. #19459 通过 Cindy Bezuidenhout 和 Clifford Akai-Nettey .Enhancement 添加了装饰助手
utils.metaestimators.available_if以更可读的方式,在元估计器中提供基于状态的方法可用或不可用的灵活性。 #19948 通过 Joel Nothman .Enhancement
utils.validation.check_is_fitted现在使用__sklearn_is_fitted__如果可用,而不是检查以强调线结尾的属性。这也使得pipeline.Pipeline和preprocessing.FunctionTransformer通过check_is_fitted(estimator). #20657 通过 Adrin Jalali .Fix 修复了中的一个错误
utils.sparsefuncs.mean_variance_axis其中当实际方差正好为零时,计算方差的精度非常差。 #19766 通过 Jérémie du Boisberranger .Fix 修饰的属性的文档字符串
utils.deprecated现在已经正确包装了。 #20385 通过 Thomas Fan .Fix
utils.stats._weighted_percentile现在正确地忽略小于具有正权重的最小观察的零加权观察percentile=0.受影响的班级是dummy.DummyRegressor为quantile=0和ensemble.HuberLossFunction和ensemble.HuberLossFunction为alpha=0. #20528 通过 Malte Londschien .Fix
utils._safe_indexing当提供integer索引时,会显式地获取收件箱副本,以避免引发Pandas的警告。此警告之前曾在重新分配的实用程序和使用这些实用程序的功能中提出过(例如model_selection.train_test_split,model_selection.cross_validate,model_selection.cross_val_score,model_selection.cross_val_predict). #20673 通过 Joris Van den Bossche .Fix 修复回归
utils.is_scalar_nanwhere large Python numbers would raise an error due to overflow in C types (np.float64ornp.int64). #20727 by Guillaume Lemaitre .Fix 支持
np.matrixis deprecated incheck_arrayin 1.0 and will raise aTypeErrorin 1.2. #20165 by Thomas Fan .API Change
utils._testing.assert_warns和utils._testing.assert_warns_message在1.0中被弃用,并将在1.2中被删除。使用pytest.warns上下文管理器。请注意,这些函数没有文档记录,并且是公共API的一部分。 #20521 通过 Olivier Grisel .API Change 修复了中的几个错误
utils.graph.graph_shortest_path, which is now deprecated. Usescipy.sparse.csgraph.shortest_pathinstead. #20531 by Tom Dupre la Tour .
代码和文档贡献者
感谢自0.24版本以来为项目维护和改进做出贡献的所有人,包括:
Abdulelah S. Al Mesfer, Abhinav Gupta, Adam J. Stewart, Adam Li, Adam Midvidy, Adrian Garcia Badaracco, Adrian Sadłocha, Adrin Jalali, Agamemnon Krasoulis, Alberto Rubiales, Albert Thomas, Albert Villanova del Moral, Alek Lefebvre, Alessia Marcolini, Alexandr Fonari, Alihan Zihna, Aline Ribeiro de Almeida, Amanda, Amanda Dsouza, Amol Deshmukh, Ana Pessoa, Anavelyz, Andreas Mueller, Andrew Delong, Ashish, Ashvith Shetty, Atsushi Nukariya, Aurélien Geron, Avi Gupta, Ayush Singh, baam, BaptBillard, Benjamin Pedigo, Bertrand Thirion, Bharat Raghunathan, bmalezieux, Brian Rice, Brian Sun, Bruno Charron, Bryan Chen, bumblebee, caherrera-meli, Carsten Allefeld, CeeThinwa, Chiara Marmo, chrissobel, Christian Lorentzen, Christopher Yeh, Chuliang Xiao, Clément Fauchereau, cliffordEmmanuel, Conner Shen, Connor Tann, David Dale, David Katz, David Poznik, Dimitri Papadopoulos Orfanos, Divyanshu Deoli, dmallia17, Dmitry Kobak, DS_anas, Eduardo Jardim, EdwinWenink, EL-ATEIF Sara, Eleni Markou, EricEllwanger, Eric Fiegel, Erich Schubert, Ezri-Mudde, Fatos Morina, Felipe Rodrigues, Felix Hafner, Fenil Suchak, flyingdutchman23, Flynn, Fortune Uwha, Francois Berenger, Frankie Robertson, Frans Larsson, Frederick Robinson, frellwan, Gabriel S Vicente, Gael Varoquaux, genvalen, Geoffrey Thomas, geroldcsendes, Hleb Levitski, Glen, Glòria Macià Muñoz, gregorystrubel, groceryheist, Guillaume Lemaitre, guiweber, Haidar Almubarak, Hans Moritz Günther, Haoyin Xu, Harris Mirza, Harry Wei, Harutaka Kawamura, Hassan Alsawadi, Helder Geovane Gomes de Lima, Hugo DEFOIS, Igor Ilic, Ikko Ashimine, Isaack Mungui, Ishaan Bhat, Ishan Mishra, Iván Pulido, iwhalvic, J Alexander, Jack Liu, James Alan Preiss, James Budarz, James Lamb, Jannik, Jeff Zhao, Jennifer Maldonado, Jérémie du Boisberranger, Jesse Lima, Jianzhu Guo, jnboehm, Joel Nothman, JohanWork, John Paton, Jonathan Schneider, Jon Crall, Jon Haitz Legarreta Gorroño, Joris Van den Bossche, José Manuel Nápoles Duarte, Juan Carlos Alfaro Jiménez, Juan Martin Loyola, Julien Jerphanion, Julio Batista Silva, julyrashchenko, JVM, Kadatatlu Kishore, Karen Palacio, Kei Ishikawa, kmatt10, kobaski, Kot271828, Kunj, KurumeYuta, kxytim, lacrosse91, LalliAcqua, Laveen Bagai, Leonardo Rocco, Leonardo Uieda, Leopoldo Corona, Loic Esteve, LSturtew, Luca Bittarello, Luccas Quadros, Lucy Jiménez, Lucy Liu, ly648499246, Mabu Manaileng, Manimaran, makoeppel, Marco Gorelli, Maren Westermann, Mariangela, Maria Telenczuk, marielaraj, Martin Hirzel, Mateo Noreña, Mathieu Blondel, Mathis Batoul, mathurinm, Matthew Calcote, Maxime Prieur, Maxwell, Mehdi Hamoumi, Mehmet Ali Özer, Miao Cai, Michal Karbownik, michalkrawczyk, Mitzi, mlondschien, Mohamed Haseeb, Mohamed Khoualed, Muhammad Jarir Kanji, murata-yu, Nadim Kawwa, Nanshan Li, naozin555, Nate Parsons, Neal Fultz, Nic Annau, Nicolas Hug, Nicolas Miller, Nico Stefani, Nigel Bosch, Nikita Titov, Nodar Okroshiashvili, Norbert Preining, novaya, Ogbonna Chibuike Stephen, OGordon100, Oliver Pfaffel, Olivier Grisel, Oras Phongpanangam, Pablo Duque, Pablo Ibieta-Jimenez, Patric Lacouth, Paulo S. Costa, Paweł Olszewski, Peter Dye, PierreAttard, Pierre-Yves Le Borgne, PranayAnchuri, Prince Canuma, putschblos, qdeffense, RamyaNP, ranjanikrishnan, Ray Bell, Rene Jean Corneille, Reshama Shaikh, ricardojnf, RichardScottOZ, Rodion Martynov, Rohan Paul, Roman Lutz, Roman Yurchak, Samuel Brice, Sandy Khosasi, Sean Benhur J, Sebastian Flores, Sebastian Pölsterl, Shao Yang Hong, shinehide, shinnar, shivamgargsya, Shooter23, Shuhei Kayawari, Shyam Desai, simonamaggio, Sina Tootoonian, solosilence, Steven Kolawole, Steve Stagg, Surya Prakash, swpease, Sylvain Marié, Takeshi Oura, Terence Honles, TFiFiE, Thomas A Caswell, Thomas J. Fan, Tim Gates, TimotheeMathieu, Timothy Wolodzko, Tim Vink, t-jakubek, t-kusanagi, tliu68, Tobias Uhmann, tom1092, Tomás Moreyra, Tomás Ronald Hughes, Tom Dupré la Tour, Tommaso Di Noto, Tomohiro Endo, TONY GEORGE, Toshihiro NAKAE, tsuga, Uttam kumar, vadim-ushtanit, Vangelis Gkiastas, Venkatachalam N, Vilém Zouhar, Vinicius Rios Fuck, Vlasovets, waijean, Whidou, xavier dupré, xiaoyuchai, Yasmeen Alsaedy, yoch, Yosuke KOBAYASHI, Yu Feng, YusukeNagasaka, yzhenman, Zero, ZeyuSun, ZhaoweiWang, Zito, Zito Relova