版本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 forbsr
anddok
sparse matrices in methods:fit
,kneighbors
andradius_neighbors
, due to handling of explicit zeros inbsr
anddok
sparse 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.matrix
usage is deprecated in 1.0 and will raise aTypeError
in 1.2. #20165 by Thomas Fan .API Change get_feature_names_out 已添加到Transformer API中以获取输出功能的名称。
get_feature_names
has 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-fit
methods, e.g.transform
and will raise aFutureWarning
if they are not consistent, see also scikit-learn 1.0的发布亮点. TheseFutureWarning
s will becomeValueError
s 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_size
parameter ofcluster.MiniBatchKMeans
was changed from 100 to 1024 due to efficiency reasons. Then_iter_
attribute ofcluster.MiniBatchKMeans
now 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_out
tocompose.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.resources
to 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=True
andas_frame=True
. #19011 by Thomas Fan .API Change 不赞成
datasets.load_boston
in 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.DummyRegressor
anddummy.DummyRegressor
is 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=None
option inensemble.HistGradientBoostingClassifier
andensemble.HistGradientBoostingRegressor
. Please usetol=0
for 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_dependence
is 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.Nystroem
where 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"
) andpositive
argument tolinear_model.Ridge
. Whenpositive
is 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_weight
in 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_threshold
are 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
normalize
oflinear_model.LinearRegression
is deprecated and will be removed in 1.2. Motivation for this deprecation:normalize
parameter did not take any effect iffit_intercept
was set to False and therefore was deemed confusing. The behavior of the deprecatedLinearModel(normalize=True)
can be reproduced with aPipeline
withLinearModel
(whereLinearModel
isLinearRegression
,Ridge
,RidgeClassifier
,RidgeCV
orRidgeClassifierCV
) as follows:make_pipeline(StandardScaler(with_mean=False), LinearModel())
. Thenormalize
parameter inLinearRegression
was deprecated in #17743 by Maria Telenczuk and Alexandre Gramfort. Same forRidge
,RidgeClassifier
,RidgeCV
, andRidgeClassifierCV
, in: #17772 by Maria Telenczuk and Alexandre Gramfort. Same forBayesianRidge
,ARDRegression
in: #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 .相同Lars
LarsCV
LassoLars
LassoLarsCV
LassoLarsIC
,在 #17769 通过 Maria Telenczuk 和 Alexandre Gramfort .API Change 关键字验证已从
__init__
andset_params
tofit
for 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_path
to 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_error
now 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_matrix
is 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_curve
is 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_curve
is 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
不验证weights
in_ _初始化__'并验证 `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.PolynomialFeatures
Transformer现在更快了。这在大的稀疏输入上尤其明显。 #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.float64
ornp.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.PolynomialFeatures
is 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.ExtraTreeClassifier
andtree.ExtraTreeRegressor
is 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_nan
where large Python numbers would raise an error due to overflow in C types (np.float64
ornp.int64
). #20727 by Guillaume Lemaitre .Fix 支持
np.matrix
is deprecated incheck_array
in 1.0 and will raise aTypeError
in 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_path
instead. #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