版本1.4#
有关该版本主要亮点的简短描述,请参阅 scikit-learn 1.4的发布亮点 .
换象传说
Major Feature 一些你以前做不到的大事。
Feature 一些你以前做不到的事情。
Efficiency 现有功能现在可能不需要那么多的计算或内存。
Enhancement 一个杂七杂八的小改进。
Fix 以前没有按照记录或合理预期发挥作用的事情现在应该起作用了。
API Change 您需要更改您的代码才能在将来产生相同的效果;或者将来将删除某个功能。
版本1.4.2#
April 2024
此版本仅包括对numpy 2的支持。
版本1.4.1#
February 2024
更改型号#
API Change 的
tree_.value
中属性tree.DecisionTreeClassifier
,tree.DecisionTreeRegressor
,tree.ExtraTreeClassifier
和tree.ExtraTreeRegressor
从样本数量的加权绝对计数更改为样本总数的加权分数。 #27639 通过 Samuel Ronsin .
元数据路由#
Fix 修复路由问题,
ColumnTransformer
当在另一个元估计器中使用时。 #28188 通过 Adrin Jalali .Fix 当没有元数据传递给包含不支持元数据路由的子估计器的元估计器时,不会出现错误。 #28256 通过 Adrin Jalali .
Fix 修复
multioutput.MultiOutputRegressor
和multioutput.MultiOutputClassifier
与启用元数据路由时不消耗任何元数据的估计器一起工作。 #28240 通过 Adrin Jalali .
数据框架支持#
Enhancement Fix Pandas and Polars dataframe are validated directly without ducktyping checks. #28195 by Thomas Fan.
影响多个模块的变更#
Efficiency Fix Partial revert of #28191 to avoid a performance regression for estimators relying on euclidean pairwise computation with sparse matrices. The impacted estimators are:
#28235 通过 Julien Jerphanion .
Fix 修复了所有scikit-learn transformers在使用
set_output
与transform
设置为pandas
或polars
.该错误可能导致返回的嵌套框架的列的错误命名。 #28262 通过 Guillaume Lemaitre .Fix 当用户尝试在中使用方法时
StackingClassifier
,StackingClassifier
,StackingClassifier
,SelectFromModel
,RFE
,SelfTrainingClassifier
,OneVsOneClassifier
,OutputCodeClassifier
或OneVsRestClassifier
他们的子估计器不实现的,AttributeError
现在在回溯中重新出现。 #28167 通过 Stefanie Senger .
Changelog#
sklearn.calibration
#
Fix
calibration.CalibratedClassifierCV
supports predict_proba with float32 output from the inner estimator. #28247 by Thomas Fan .
sklearn.cluster
#
Fix
cluster.AffinityPropagation
现在避免为相等的分分配多个不同的集群。 #28121 通过 Pietro Peterlongo 和 Yao Xiao .Fix 避免无限循环
cluster.KMeans
当集群的数量大于非重复样本的数量时。 #28165 通过 Jérémie du Boisberranger .
sklearn.compose
#
Fix
compose.ColumnTransformer
现在变成了极地冰壶,verbose_feature_names_out=True
并且变压器内部使用的次数是同一柱的好几倍。以前,由于列名重复,它会引发a。 #28262 通过 Guillaume Lemaitre .
sklearn.ensemble
#
Fix
HistGradientBoostingClassifier
和HistGradientBoostingRegressor
当安装在pandas
DataFrame
例如,使用扩展dtypespd.Int64Dtype
#28385 通过 Loïc Estève .Fix 修复由引起的错误消息
ensemble.VotingClassifier
当目标是DataFrame格式的多标签或多类多输出时。 #27702 通过 Guillaume Lemaitre .
sklearn.impute
#
Fix :
impute.SimpleImputer
现在提出了一个错误,.fit
和.transform
如果fill_value
无法转换为输入值dypecasting='same_kind'
. #28365 通过 Leo Grinsztajn .
sklearn.inspection
#
Fix
inspection.permutation_importance
现在处理正确sample_weight
与子采样一起(即max_features
< 1.0)。 #28184 通过 Michael Mayer .
sklearn.linear_model
#
Fix
linear_model.ARDRegression
现在处理pandas输入类型predict(X, return_std=True)
. #28377 通过 Eddie Bergman .
sklearn.preprocessing
#
Fix 使
preprocessing.FunctionTransformer
更宽松,并使用get_feature_names_out
在以下情况下:(i)输入和输出列名保持相同(使用NumPy时会发生这种情况ufunc
);(ii)输入列名是数字;(iii)输出将设置为Pandas或Polars rame。 #28241 通过 Guillaume Lemaitre .Fix
preprocessing.FunctionTransformer
现在还警告何时set_output
被称为transform="polars"
和func
不返回Polars Pramame或feature_names_out
未指定。 #28263 通过 Guillaume Lemaitre .Fix
preprocessing.TargetEncoder
不再失败时target_type="continuous"
并且输入是只读的。特别是,它现在可以在启用pandas写时复制模式的情况下工作。 #28233 通过 John Hopfensperger .
sklearn.tree
#
Fix
tree.DecisionTreeClassifier
和tree.DecisionTreeRegressor
正在正确处理缺失的值。当数据中不存在缺失值时,内部标准未初始化,从而导致潜在错误的标准值。 #28295 通过 Guillaume Lemaitre 和 #28327 通过 Adam Li .
sklearn.utils
#
Enhancement Fix
utils.metaestimators.available_if
now reraises the error from thecheck
function as the cause of theAttributeError
. #28198 by Thomas Fan.Fix
utils._safe_indexing
现在提出了ValueError
当X
是一个Python列表,axis=1
,如文档字符串中所记录的那样。 #28222 通过 Guillaume Lemaitre .
版本1.4.0#
January 2024
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
Efficiency
linear_model.LogisticRegression
和linear_model.LogisticRegressionCV
现在,求解器有了更好的收敛性"lbfgs"
和"newton-cg"
.根据指定的tol
.此外,LBFG可以更好地利用tol
,即,更快停止或达到更高精度。注意:lbfgs是默认解算器,因此此更改可能会影响许多模型。这一变化也意味着,使用这个新版本的scikit-learn,coef_
和intercept_
对于这两个解算器,您的模型的值将发生变化(再次拟合相同数据时)。更改量取决于指定的tol
,对于较小的值,您将获得更精确的结果。 #26721 通过 Christian Lorentzen .Fix 使用Cython损失函数修复PyPy中出现的估计器内存泄漏。 #27670 通过 Guillaume Lemaitre .
影响所有模块的更改#
Major Feature 变形金刚现在支持两极输出
set_output(transform="polars")
. #27315 by Thomas Fan .Enhancement 所有估计器现在都可以识别任何采用 DataFrame Interchange Protocol .通过以下方式返回正确表示的数据框架
np.asarray(df)
is expected to work with our estimators and functions. #26464 by Thomas Fan .Enhancement 估计量的HTML表示形式现在包括指向文档的链接,并且采用颜色编码来表示估计量是否适合(未适合的估计量为橙色,适合的估计量为蓝色)。 #26616 通过 Riccardo Cappuzzo , Ines Ibnukhsein , Gael Varoquaux , Joel Nothman 和 Lilian Boulard .
Fix 修复了大多数估计器和函数中的一个错误,其中将参数设置为大整数会导致
TypeError
. #26648 通过 Naoise Holohan .
元数据路由#
以下模型现在支持一种或多种方法中的元数据路由。参阅 Metadata Routing User Guide 了解更多详细信息。
Feature
LarsCV
和LassoLarsCV
现在支持元数据路由fit
方法并将元数据路由到CV拆分器。 #27538 通过 Omar Salman .Feature
multiclass.OneVsRestClassifier
,multiclass.OneVsOneClassifier
和multiclass.OutputCodeClassifier
现在支持元数据路由fit
和partial_fit
,并将元数据路由到基础估计器的fit
和partial_fit
. #27308 通过 Stefanie Senger .Feature
pipeline.Pipeline
现在支持元数据路由 metadata routing user guide . #26789 通过 Adrin Jalali .Feature
cross_validate
,cross_val_score
,而且cross_val_predict
现在支持元数据路由。元数据被路由到估计器的fit
, the scorer, and the CV splitter'ssplit
. The metadata is accepted via the newparams
parameter.fit_params
is deprecated and will be removed in version 1.6.groups
parameter is also not accepted as a separate argument when metadata routing is enabled and should be passed via theparams
parameter. #26896 by Adrin Jalali .Feature
GridSearchCV
,RandomizedSearchCV
,HalvingGridSearchCV
,而且HalvingRandomSearchCV
现在支持元数据路由fit
和score
,并将元数据路由到基础估计器的fit
、简历分配器和记分员。 #27058 通过 Adrin Jalali .Feature
ColumnTransformer
现在支持元数据路由 metadata routing user guide . #27005 通过 Adrin Jalali .Feature
linear_model.LogisticRegressionCV
现在支持元数据路由。linear_model.LogisticRegressionCV.fit
现在接受**params
这些信息被传递给底层拆分器和记分器。linear_model.LogisticRegressionCV.score
现在接受**score_params
这些信息被传递给潜在的得分者。 #26525 通过 Omar Salman .Feature
feature_selection.SelectFromModel
现在支持元数据路由fit
和partial_fit
. #27490 通过 Stefanie Senger .Feature
linear_model.OrthogonalMatchingPursuitCV
现在支持元数据路由。其fit
现在接受**fit_params
,将其传递给底层拆分器。 #27500 通过 Stefanie Senger .Feature
ElasticNetCV
,LassoCV
,MultiTaskElasticNetCV
和MultiTaskLassoCV
现在支持元数据路由并将元数据路由到CV拆分器。 #27478 通过 Omar Salman .Fix 所有尚未实施元数据路由的元估计器现在都会引发
NotImplementedError
onget_metadata_routing
and onfit
if metadata routing is enabled and any metadata is passed to them. #27389 by Adrin Jalali .
支持SciPy稀疏阵列#
一些估计器现在支持SciPy稀疏阵列。以下功能和类受到影响:
Functions:
cluster.compute_optics_graph
在 #27104 通过 Maren Westermann 和 #27250 通过 Yao Xiao ;decomposition.non_negative_factorization
在 #27100 通过 Isaac Virshup ;feature_selection.f_regression
在 #27239 通过 Yaroslav Korobko ;feature_selection.r_regression
在 #27239 通过 Yaroslav Korobko ;
Classes:
cluster.HDBSCAN
在 #27250 通过 Yao Xiao ;cluster.KMeans
在 #27179 通过 Nurseit Kamchyev ;cluster.OPTICS
在 #27104 通过 Maren Westermann 和 #27250 通过 Yao Xiao ;decomposition.NMF
在 #27100 通过 Isaac Virshup ;feature_extraction.text.TfidfTransformer
在 #27219 通过 Yao Xiao ;manifold.Isomap
在 #27250 通过 Yao Xiao ;manifold.TSNE
在 #27250 通过 Yao Xiao ;impute.SimpleImputer
在 #27277 通过 Yao Xiao ;impute.KNNImputer
在 #27277 通过 Yao Xiao ;kernel_approximation.PolynomialCountSketch
在 #27301 通过 Lohit SundaramahaLingam ;random_projection.GaussianRandomProjection
在 #27314 通过 Stefanie Senger ;random_projection.SparseRandomProjection
在 #27314 通过 Stefanie Senger .
支持数组API#
有几个估计器和函数支持 Array API .此类更改允许将估计器和函数与JAX、CuPy和PyTorch等其他库一起使用。因此,这可以实现一些GOP加速计算。
看到 数组API支持(实验性) 了解更多详细信息。
Functions:
sklearn.metrics.accuracy_score
和sklearn.metrics.zero_one_loss
在 #27137 通过 Edoardo Abati ;sklearn.model_selection.train_test_split
在 #26855 通过 Tim Head ;is_multilabel
在 #27601 通过 Yaroslav Korobko .
Classes:
decomposition.PCA
为full
和randomized
求解器(具有QR功率迭代)在 #26315 , #27098 和 #27431 通过 Mateusz Sokół , Olivier Grisel 和 Edoardo Abati ;
私人损失功能模块#
Fix 对于绝对值非常大的输入(原始预测),二项对数损失的梯度计算现在在数字上更加稳定。以前,它可能会导致
np.nan
.从这一变化中受益的模型包括ensemble.GradientBoostingClassifier
,ensemble.HistGradientBoostingClassifier
和linear_model.LogisticRegression
. #28048 通过 Christian Lorentzen .
Changelog#
sklearn.base
#
Enhancement
base.ClusterMixin.fit_predict
和base.OutlierMixin.fit_predict
现在接受**kwargs
这些信息被传递给fit
估计者的方法。 #26506 通过 Adrin Jalali .Enhancement
base.TransformerMixin.fit_transform
和base.OutlierMixin.fit_predict
现在提出警告,如果transform
/predict
消费元数据,但不自定义fit_transform
/fit_predict
在相应继承它们的类中定义。 #26831 通过 Adrin Jalali .Enhancement
base.clone
现在支持dict
as input and creates a copy. #26786 by Adrin Jalali .API Change :func:'~utils. metalics_Routing.Process_Routing '现在具有不同的签名。前两个(对象和方法)仅是位置性的,所有元数据都作为关键字参数传递。 #26909 通过 Adrin Jalali .
sklearn.calibration
#
Enhancement 内部目标和梯度
sigmoid
方法calibration.CalibratedClassifierCV
已被私人丢失模块取代。 #27185 通过 Omar Salman .
sklearn.cluster
#
Fix 的
degree
中参数cluster.SpectralClustering
构造器现在根据degree
参数sklearn.metrics.pairwise.polynomial_kernel
. #27668 通过 Nolan McMahon .Fix 修复了错误
cluster.OPTICS
其中基于前身的集群纠正没有使用正确的索引。根据数据的顺序,这会导致结果不一致。 #26459 通过 Haoying Zhang 和 Guillaume Lemaitre .Fix 检查中连接的组件数量时改进错误消息
fit
方法cluster.HDBSCAN
. #27678 通过 Ganesh Tata .Fix 中创建预先计算的稀疏矩阵的副本
fit
方法cluster.DBSCAN
以避免对稀疏矩阵进行就地修改。 #27651 通过 Ganesh Tata .Fix 提出适当的
ValueError
当metric="precomputed"
并通过参数请求存储中心store_centers
. #27898 通过 Guillaume Lemaitre .API Change
kdtree
和balltree
值现已被废弃并重命名为kd_tree
和ball_tree
分别针对algorithm
参数cluster.HDBSCAN
确保命名惯例的一致性。kdtree
和balltree
值将在1.6中删除。 #26744 通过 Shreesha Kumar Bhat .API Change 的选项
metric=None
在cluster.AgglomerativeClustering
和cluster.FeatureAgglomeration
在1.4版本中已被弃用,并将在1.6版本中删除。改用默认值。 #27828 通过 Guillaume Lemaitre .
sklearn.compose
#
Major Feature 添加 polars 输入支持
compose.ColumnTransformer
通过 DataFrame Interchange Protocol . Polars支持的最低版本是0.19.12
. #26683 by Thomas Fan .Fix
cluster.spectral_clustering
和cluster.SpectralClustering
现在引发显式错误消息,指示稀疏矩阵和数组np.int64
不支持指数。 #27240 通过 Yao Xiao .API Change 使用pandas扩展dtypes并包含的输出
pd.NA
在ColumnTransformer
现在结果是FutureWarning
并会导致ValueError
在1.6版本中,除非输出容器已配置为“pandas”,set_output(transform="pandas")
.以前,此类输出会导致dype的numpy数组object
含有pd.NA
它无法转换为numpy float,并且在传递给其他scikit-learn估计器时会导致错误。 #27734 通过 Jérôme Dockès .
sklearn.covariance
#
Enhancement 允许
covariance.shrunk_covariance
通过处理nd数组同时处理多个协方差矩阵。 #25275 通过 Quentin Barthélemy .API Change Fix
ColumnTransformer
now replaces"passthrough"
with a correspondingFunctionTransformer
in the fittedtransformers_
attribute. #27204 by Adrin Jalali.
sklearn.datasets
#
Enhancement
datasets.make_sparse_spd_matrix
现在使用内存效率更高的稀疏布局。它还接受新关键字sparse_format
它允许指定稀疏矩阵的输出格式。默认情况下sparse_format=None
,它像以前一样返回一个密集的numpy ndray。 #27438 通过 Yao Xiao .Fix
datasets.dump_svmlight_file
现在不提出ValueError
当X
是只读的,例如,一numpy.memmap
instance. #28111 通过 Yao Xiao .API Change
datasets.make_sparse_spd_matrix
已弃用关键字参数dim
赞成n_dim
.dim
将在1.6版本中删除。 #27718 通过 Adam Li .
sklearn.decomposition
#
Feature
decomposition.PCA
现在支持scipy.sparse.sparray
和scipy.sparse.spmatrix
使用时的输入arpack
solver. When used on sparse data likedatasets.fetch_20newsgroups_vectorized
this can lead to speed-ups of 100x (single threaded) and 70x lower memory usage. Based on Alexander Tarashansky's implementation in scanpy . #18689 通过 Isaac Virshup 和 Andrey Portnoy .Enhancement 添加了“自动”选项
n_components
参数decomposition.non_negative_factorization
,decomposition.NMF
和decomposition.MiniBatchNMF
使用自定义初始化时,自动从W或H形状推断组件数量。此参数的默认值将从None
到auto
在1.6版本中。 #26634 通过 Alexandre Landeau 和 Alexandre Vigny .Fix
decomposition.dict_learning_online
不再忽略参数max_iter
. #27834 通过 Guillaume Lemaitre .Fix 的
degree
中参数decomposition.KernelPCA
构造器现在根据degree
参数sklearn.metrics.pairwise.polynomial_kernel
. #27668 通过 Nolan McMahon .API Change 的选项
max_iter=None
在decomposition.MiniBatchDictionaryLearning
,decomposition.MiniBatchSparsePCA
,而且decomposition.dict_learning_online
已被弃用,并将在1.6版本中删除。改用默认值。 #27834 通过 Guillaume Lemaitre .
sklearn.ensemble
#
Major Feature
ensemble.RandomForestClassifier
和ensemble.RandomForestRegressor
支持缺失值,条件为gini
,entropy
, orlog_loss
, for classification orsquared_error
,friedman_mse
, orpoisson
for regression. #26391 by Thomas Fan .Major Feature
ensemble.HistGradientBoostingClassifier
和ensemble.HistGradientBoostingRegressor
支持categorical_features="from_dtype"
, which treats columns with Pandas or Polars Categorical dtype as categories in the algorithm.categorical_features="from_dtype"
will become the default in v1.6. Categorical features no longer need to be encoded with numbers. When categorical features are numbers, the maximum value no longer needs to be smaller thanmax_bins
; only the number of (unique) categories must be smaller thanmax_bins
. #26411 by Thomas Fan 和 #27835 通过 Jérôme Dockès .Major Feature
ensemble.HistGradientBoostingClassifier
和ensemble.HistGradientBoostingRegressor
获得新参数max_features
指定每次拆分中考虑的随机选择特征的比例。 #27139 通过 Christian Lorentzen .Feature
ensemble.RandomForestClassifier
,ensemble.RandomForestRegressor
,ensemble.ExtraTreesClassifier
和ensemble.ExtraTreesRegressor
现在支持单调约束,当功能应该对目标产生正/负影响时,这很有用。不支持列车数据和多输出目标中的缺失值。 #13649 通过 Samuel Ronsin ,发起人 Patrick O'Reilly .Efficiency
ensemble.HistGradientBoostingClassifier
和ensemble.HistGradientBoostingRegressor
现在,通过在减法技巧中重复使用父节点的矩形图作为子节点的矩形图,速度会更快一些。实际上,需要分配和释放的内存更少。 #27865 通过 Christian Lorentzen .Efficiency
ensemble.GradientBoostingClassifier
由于私有损失函数模块,对于二进制问题,尤其是对于多类问题,速度更快。 #26278 和 #28095 通过 Christian Lorentzen .Efficiency 改善运行时和内存使用率
ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
当在稀疏数据上训练时。 #26957 通过 Thomas Fan .Efficiency
ensemble.HistGradientBoostingClassifier
和ensemble.HistGradientBoostingRegressor
现在速度更快时scoring
is a predefined metric listed inmetrics.get_scorer_names
and early stopping is enabled. #26163 by Thomas Fan .Enhancement 一处合适的房产,
estimators_samples_
,已添加到所有Forest方法中,包括ensemble.RandomForestClassifier
,ensemble.RandomForestRegressor
,ensemble.ExtraTreesClassifier
和ensemble.ExtraTreesRegressor
,它允许检索用于每个树估计器的训练样本索引。 #26736 通过 Adam Li .Fix 修复
ensemble.IsolationForest
当输入是稀疏矩阵并且contamination
设置为浮点值。 #27645 通过 Guillaume Lemaitre .Fix 提出了一个
ValueError
在ensemble.RandomForestRegressor
和ensemble.ExtraTreesRegressor
当请求具有目标的多输出模型的OSC分数时,将全部四舍五入为整。它被认为是一个多类问题。 #27817 通过 Daniele OngariFix 更改估计器标签以承认
ensemble.VotingClassifier
,ensemble.VotingRegressor
,ensemble.StackingClassifier
,ensemble.StackingRegressor
,支持缺失值(如果有的话)estimators
支持缺失的值。 #27710 通过 Guillaume Lemaitre .Fix 支持装载泡菜
ensemble.HistGradientBoostingClassifier
和ensemble.HistGradientBoostingRegressor
当泡菜在具有不同比特度的平台上生成时。一个典型的例子是在64位机器上训练和腌制模型,然后将模型加载到32位机器上进行预测。 #28074 通过 Christian Lorentzen 和 Loïc Estève .API Change 在
ensemble.AdaBoostClassifier
,algorithm
论点SAMME.R
已弃用,将在1.6中删除。 #26830 通过 Stefanie Senger .
sklearn.feature_extraction
#
sklearn.feature_selection
#
Enhancement
feature_selection.SelectKBest
,feature_selection.SelectPercentile
,而且feature_selection.GenericUnivariateSelect
现在通过提供score_func
以X
和y=None
. #27721 通过 Guillaume Lemaitre .Enhancement
feature_selection.SelectKBest
和feature_selection.GenericUnivariateSelect
与mode='k_best'
now shows a warning whenk
is greater than the number of features. #27841 by Thomas Fan .Fix
feature_selection.RFE
和feature_selection.RFECV
在输入验证期间不要检查nans。 #21807 通过 Thomas Fan .
sklearn.inspection
#
Enhancement
inspection.DecisionBoundaryDisplay
现在接受参数class_of_interest
在绘制由提供的响应时选择感兴趣的类别response_method="predict_proba"
或response_method="decision_function"
.它允许绘制二进制和多类分类器的决策边界。 #27291 通过 Guillaume Lemaitre .Fix
inspection.DecisionBoundaryDisplay.from_estimator
和inspection.PartialDependenceDisplay.from_estimator
现在返回子类的正确类型。 #27675 通过 John Cant .API Change
inspection.DecisionBoundaryDisplay
提出了一个AttributeError
而不是ValueError
当估计器不实现请求的响应方法时。 #27291 通过 Guillaume Lemaitre .
sklearn.kernel_ridge
#
Fix 的
degree
中参数kernel_ridge.KernelRidge
构造器现在根据degree
参数sklearn.metrics.pairwise.polynomial_kernel
. #27668 通过 Nolan McMahon .
sklearn.linear_model
#
Efficiency
linear_model.LogisticRegression
和linear_model.LogisticRegressionCV
现在,求解器有了更好的收敛性"lbfgs"
和"newton-cg"
.根据指定的tol
.此外,LBFG可以更好地利用tol
,即,更快停止或达到更高精度。这是通过更好地缩放目标函数来实现的,即,使用每个样本损失的平均值而不是每个样本损失的总和。 #26721 通过 Christian Lorentzen .Efficiency
linear_model.LogisticRegression
和linear_model.LogisticRegressionCV
用求解器"newton-cg"
现在对于某些数据和参数设置来说可以快得多。这是通过考虑梯度信息的更好的线搜索收敛检查来实现的。 #26721 通过 Christian Lorentzen .Efficiency 求解器
"newton-cg"
在linear_model.LogisticRegression
和linear_model.LogisticRegressionCV
使用较少的内存。效果与系数的数量成正比 (n_features * n_classes
). #27417 通过 Christian Lorentzen .Fix 确保
sigma_
属性linear_model.ARDRegression
和linear_model.BayesianRidge
总是有float32
安装时d型float32
数据,即使使用NumPy 2的类型提升规则。 #27899 通过 Olivier Grisel .API Change 属性
loss_function_
的linear_model.SGDClassifier
和linear_model.SGDOneClassSVM
已被弃用并将在1.6版本中删除。 #27979 通过 Christian Lorentzen .
sklearn.metrics
#
Efficiency Computing pairwise distances via
metrics.DistanceMetric
for CSR x CSR, Dense x CSR, and CSR x Dense datasets is now 1.5x faster. #26765 by Meekail Zain.Efficiency 通过计算距离
metrics.DistanceMetric
对于CSR x CSR、Dense x CSR和CSR x Dense,现在使用的内存减少了约50%,并以与提供的数据相同的数据类型输出距离。 #27006 通过 Meekail Zain .Enhancement 改进使用获得的情节的渲染
metrics.PrecisionRecallDisplay
和metrics.RocCurveDisplay
班x轴和y轴限制设置为 [0, 1] 并将两个轴之间的长宽比设置为1以获得方形图。 #26366 通过 Mojdeh Rastgoo .Enhancement 添加
neg_root_mean_squared_log_error_scorer
作为得分手 #26734 通过 Alejandro Martin Gil .Enhancement
metrics.confusion_matrix
现在当仅发现一个标签时发出警告y_true
和y_pred
. #27650 通过 Lucy Liu .Fix 计算成对距离
metrics.pairwise.euclidean_distances
当情况下,不再引发异常X
被提供为float64
阵列和X_norm_squared
作为float32
阵 #27624 通过 Jérôme Dockès .Fix
f1_score
现在,在处理发生零除的各种情况时,通过使用不依赖于精确度和召回率的公式提供正确的值。 #27577 通过 Omar Salman 和 Guillaume Lemaitre .Fix
metrics.make_scorer
现在,当在请求非阈值决策函数的评分器上使用回归量时会引发错误(来自decision_function
或predict_proba
).此类评分者特定于分类。 #26840 通过 Guillaume Lemaitre .Fix
metrics.DetCurveDisplay.from_predictions
,metrics.PrecisionRecallDisplay.from_predictions
,metrics.PredictionErrorDisplay.from_predictions
,而且metrics.RocCurveDisplay.from_predictions
现在返回子类的正确类型。 #27675 通过 John Cant .API Change 弃用
needs_threshold
和needs_proba
从metrics.make_scorer
.这些参数将在1.6版本中删除。而应使用response_method
受理"predict"
,"predict_proba"
或"decision_function"
或此类价值观的列表。needs_proba=True
相当于response_method="predict_proba"
和needs_threshold=True
相当于response_method=("decision_function", "predict_proba")
. #26840 通过 Guillaume Lemaitre .API Change 的
squared
参数metrics.mean_squared_error
和metrics.mean_squared_log_error
已被弃用并将在1.6中删除。使用新功能metrics.root_mean_squared_error
和metrics.root_mean_squared_log_error
而不是. #26734 通过 Alejandro Martin Gil .
sklearn.model_selection
#
Enhancement
model_selection.learning_curve
当每个交叉验证折叠失败时,都会发出警告。 #26299 通过 Rahil Parikh .Fix
model_selection.GridSearchCV
,model_selection.RandomizedSearchCV
,而且model_selection.HalvingGridSearchCV
现在,如果参数网格中的给定对象是估计器,则不要更改它。 #26786 通过 Adrin Jalali .
sklearn.multioutput
#
Enhancement Add方法
predict_log_proba
到multioutput.ClassifierChain
. #27720 通过 Guillaume Lemaitre .
sklearn.neighbors
#
Efficiency
sklearn.neighbors.KNeighborsRegressor.predict
和sklearn.neighbors.KNeighborsClassifier.predict_proba
现在有效支持密集和稀疏数据集对。 #27018 通过 Julien Jerphanion .Efficiency The performance of
neighbors.RadiusNeighborsClassifier.predict
and ofneighbors.RadiusNeighborsClassifier.predict_proba
has been improved whenradius
is large andalgorithm="brute"
with non-Euclidean metrics. #26828 by Omar Salman.Fix 改进错误消息
neighbors.LocalOutlierFactor
当用它调用时n_samples=n_neighbors
. #23317 通过 Bharat Raghunathan .Fix
neighbors.KNeighborsClassifier.predict
和neighbors.KNeighborsClassifier.predict_proba
现在,当某个样本的所有邻居的权重都为零时,会产生一个错误。这种情况可能发生在weights
是用户定义的函数。 #26410 通过 Yao Xiao .API Change
neighbors.KNeighborsRegressor
现在接受metrics.DistanceMetric
直接通过metric
允许使用加速第三方的关键字参数metrics.DistanceMetric
对象 #26267 通过 Meekail Zain .
sklearn.preprocessing
#
Efficiency
preprocessing.OrdinalEncoder
避免两次计算缺失的指标,以提高效率。 #27017 通过 Xuefeng Xu .Efficiency 提高效率
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
在检查nan
. #27760 通过 Xuefeng Xu .Enhancement 改进了警告
preprocessing.FunctionTransformer
当func
returns a pandas dataframe and the output is configured to be pandas. #26944 by Thomas Fan .Enhancement
preprocessing.TargetEncoder
现在支持target_type
“多类”。 #26674 通过 Lucy Liu .Fix
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
引发异常时,nan
是一个类别,并且不是用户提供的类别中的最后一个。 #27309 通过 Xuefeng Xu .Fix
preprocessing.OneHotEncoder
和preprocessing.OrdinalEncoder
如果用户提供的类别包含重复项,则引发异常。 #27328 通过 Xuefeng Xu .Fix
preprocessing.FunctionTransformer
在transform
的输出是否get_feature_names_out
如果定义了输出容器的列名,则与输出容器的列名不一致。 #27801 通过 Guillaume Lemaitre .Fix 养
NotFittedError
在preprocessing.OrdinalEncoder
打电话时transform
不调用fit
以来categories
总是需要检查。 #27821 通过 Guillaume Lemaitre .
sklearn.tree
#
Feature
tree.DecisionTreeClassifier
,tree.DecisionTreeRegressor
,tree.ExtraTreeClassifier
和tree.ExtraTreeRegressor
现在支持单调约束,当功能应该对目标产生正/负影响时,这很有用。不支持列车数据和多输出目标中的缺失值。 #13649 通过 Samuel Ronsin ,发起人 Patrick O'Reilly .
sklearn.utils
#
Enhancement
sklearn.utils.estimator_html_repr
根据浏览器的颜色动态调整图表颜色prefers-color-scheme
, providing improved adaptability to dark mode environments. #26862 by Andrew Goh Yisheng, Thomas Fan , Adrin Jalali .Enhancement
MetadataRequest
和MetadataRouter
现在有一个consumes
一种方法,可用于检查是否会消耗给定的参数集。 #26831 通过 Adrin Jalali .Enhancement 使
sklearn.utils.check_array
尝试输出int32
- 如果非零条目的数量足够小,则从DIA阵列转换时索引CSR和COO阵列。这确保了Cython中实现的估计器不接受int64
- 索引稀疏数据结构,现在一致接受SciPy稀疏矩阵和数组相同的稀疏输入格式。 #27372 通过 Guillaume Lemaitre .Fix
sklearn.utils.check_array
应该接受来自稀疏SciPy模块的矩阵和数组。如果出现以下情况,之前的实现就会失败copy=True
通过调用特定的NumPynp.may_share_memory
这不适用于SciPy稀疏数组,并且不会返回SciPy稀疏矩阵的正确结果。 #27336 通过 Guillaume Lemaitre .Fix
check_estimators_pickle
与readonly_memmap=True
现在依赖于joblib自己的能力,在加载序列化估计器时分配对齐的内存映射阵列,而不是调用专用私有函数,该函数在OpenBLAS错误检测到中央处理器架构时会崩溃。 #27614 通过 Olivier Grisel .Fix 错误信息
check_array
当传递稀疏矩阵时,accept_sparse
是False
现在建议使用.toarray()
而不是X.toarray()
. #27757 通过 Lucy Liu .Fix 修复功能
check_array
当输入是Series而不是DataFrame时,输出正确的错误消息。 #28090 通过 Stan Furrer 和 Yao Xiao .API Change
sklearn.extmath.log_logistic
已被弃用并将在1.6中删除。使用-np.logaddexp(0, -x)
而不是. #27544 通过 Christian Lorentzen .
代码和文档贡献者
感谢自1.3版本以来为项目维护和改进做出贡献的所有人,包括:
101 AlexMartin,Abhishek Singh Kushwah,Adam Li,Adarsh Wase,Adrin Jalali,Advik Sinha,Alex,Alexander Al-Feghali,Alexis IMBRT,AlexL,Alex Molas,Anam Fatima,Andrew Goh,andyscanzio,Aniket Patil,Artem Kislovskiy,Arturo Amor,ashah 002,avm 19,Ben Holmes,Ben Mares,Benoit Chevallier-Mames,Bharat Raghunathan,Binesh Bannerjee,Brendan Lu,Brevin Kunde,Camille Troillard,Carlo Lemos,Chad Parmet、Christian Clauss、Christian Lorentzen、Christian Veenhuis、Christos Aridas、Cindy Liang、Claudio Salvatore Arcidiacono、Connor Boyle、cynthias 13 w、DaminK、Daniele Ongari、Daniel Schmitz、Daniel Tinoco、David Brochart、Deborah L. Haar,DevanshKyada27,Dimitri Papadopoulos Orfanos,Dmitry Nesterov,DUONG,Edoardo Abati,Eitan Hemed,Elabonga Atuo,Elisabeth Günther,Emma Carballal,Emmanuel Ferdman,表观性,Erwan Le Floch,Fabian Egli,Filip Karlo Došilović,Florian Idelberger,Franck Charras,Gael Varoquaux,Ganesh Tata,Hleb Levitski,Guillaume Lemaitre,Haoying Zhang,Harmanan Kohli,Ily,ioangtop,IsaacTrost,Isaac Virshup,Iwona Zdzieblo,Jakub Kaczmarzyk、James McDermott、Jarrod Millman、JB Mountford、Jérémie du Boisberranger、Jérôme Dockès、Jiiwei Zhang、Joel Nothman、John Cant、John Hopfensperger、Jona Sassenhagen、Jon Nordby、Julien Jerphanion、Kennedy Waweru、kevin moore、Kian Eliasi、Kishan Ved、Konstantinos Pitas、Koustav Ghosh、Kushan Sharma、ldwy 4、Linus、Lohit SundaramahaLingam、Loic Esteve、Lorenz、Louis Fouquet、Lucy Liu、Luis Silvestrin、Luis Silvestrin、Luis Silvestrin、LukáFolwarczn、Lukas Geiger、Malte Lonschien、Marcus Fraa、Marek Hanu、Maren Westermann、Mark Elliot、Martin Larralde、Mateusz Sokó、mathurinm、mecopur、Meekail Zain、Michael Higgins、Miki Watanabe、Milton Gomez、MN193、Mohammed Hamdy、Mohit Joshi、mrastgoo、Naman Dhingra、Naoise Holohan、Narendra Singh dangi、Noa Malem-Shinitski、诺兰、Nurseit Kamchyev、Oleksii Kachaiev、Olivier Grisel、Omar Salman、Partev、Peter Hull、Peter Steinbach、Pierre de Fréminville、Pooja Subramaniam、Puneeth K、qmarcou、Quentin Barthélemy、Rahil Parikh、Rahul Mahajan、Raj Pulapakura、Raphael、Ricardo Peres、Riccardo Cappuzzo、Roman Lutz、Salim Dohri、Samuel O. Ronsin、Sandip Dutta、Sayed Qaiser Ali、scaja、scikit-learn-bot、Sebastian Berg、Shreesha Kumar Bhat、Shubhal Gupta、Søren Fuglede Jørgensen、Stefanie Senger、Tamara、Tanjina Afroj、THARAK HEGDE、thebabush、Thomas J. Fan、Thomas Roehr、Tialo、Tim Head、tongyu、Venkatachalam N、Vijeth Moudgalya、Vincent M、Vivek Reddy P、Vladimir Fokow、肖元、徐学峰、杨涛、姚晓、周宇晨、平松雄介