版本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.CalibratedClassifierCVsupports 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当安装在pandasDataFrame例如,使用扩展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_ifnow reraises the error from thecheckfunction 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 newparamsparameter.fit_paramsis deprecated and will be removed in version 1.6.groupsparameter is also not accepted as a separate argument when metadata routing is enabled and should be passed via theparamsparameter. #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 所有尚未实施元数据路由的元估计器现在都会引发
NotImplementedErroronget_metadata_routingand onfitif 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现在支持dictas 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
ColumnTransformernow replaces"passthrough"with a correspondingFunctionTransformerin 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.memmapinstance. #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使用时的输入arpacksolver. When used on sparse data likedatasets.fetch_20newsgroups_vectorizedthis 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, orpoissonfor 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现在速度更快时scoringis a predefined metric listed inmetrics.get_scorer_namesand 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 whenkis 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.DistanceMetricfor 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.predictand ofneighbors.RadiusNeighborsClassifier.predict_probahas been improved whenradiusis 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当funcreturns 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、肖元、徐学峰、杨涛、姚晓、周宇晨、平松雄介