版本1.3#
有关该版本主要亮点的简短描述,请参阅 scikit-learn 1.3的发布亮点 .
换象传说
Major Feature 一些你以前做不到的大事。
Feature 一些你以前做不到的事情。
Efficiency 现有功能现在可能不需要那么多的计算或内存。
Enhancement 一个杂七杂八的小改进。
Fix 以前没有按照记录或合理预期发挥作用的事情现在应该起作用了。
API Change 您需要更改您的代码才能在将来产生相同的效果;或者将来将删除某个功能。
版本1.3.2#
October 2023
Changelog#
sklearn.datasets
#
Fix 所有数据集获取器现在接受
data_home
作为实现os.PathLike
例如,接口pathlib.Path
. #27468 通过 Yao Xiao .
sklearn.decomposition
#
Fix 修复了错误
decomposition.KernelPCA
通过强制内部的输出preprocessing.KernelCenterer
成为默认数组。当使用arpack解算器时,它需要一个具有dtype
属性 #27583 通过 Guillaume Lemaitre .
sklearn.metrics
#
Fix 使用修复指标的错误
zero_division=np.nan
(例如precision_score
)在平行循环内(例如cross_val_score
)单身人士在哪里np.nan
在子流程中会有所不同。 #27573 通过 Guillaume Lemaitre .
sklearn.tree
#
Fix 不要通过决策树pickle文件中的未初始化内存泄露数据,并使这些文件的生成具有确定性。 #27580 通过 Loïc Estève .
版本1.3.1#
September 2023
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
Fix 山脊模型
solver='sparse_cg'
may have slightly different results with scipy>=1.12, because of an underlying change in the scipy solver (see scipy#18488 欲了解更多详情) #26814 通过 Loïc Estève
影响所有模块的更改#
Fix 的
set_output
API correctly works with list input. #27044 by Thomas Fan .
Changelog#
sklearn.calibration
#
Fix
calibration.CalibratedClassifierCV
现在可以处理产生较大预测分数的模型。在数字上不稳定之前。 #26913 通过 Omar Salman .
sklearn.cluster
#
Fix
cluster.BisectingKMeans
当预测与用于匹配模型的数据规模不同的数据时,可能会崩溃。 #27167 通过 Olivier Grisel .Fix
cluster.BisectingKMeans
现在处理具有单一特征的数据。 #27243 通过 Jérémie du Boisberranger .
sklearn.cross_decomposition
#
Fix
cross_decomposition.PLSRegression
现在自动破坏predict
如果安装一维y
. #26602 通过 Yao Xiao .
sklearn.ensemble
#
Fix 修复中的错误
ensemble.AdaBoostClassifier
与algorithm="SAMME"
其中每个弱学习器的决策函数应该是对称的(即样本的分数之和应该为零)。 #26521 通过 Guillaume Lemaitre .
sklearn.feature_selection
#
Fix
feature_selection.mutual_info_regression
现在正确计算结果时X
是integer d类型。 #26748 通过 Yao Xiao .
sklearn.impute
#
Fix
impute.KNNImputer
现在可以正确地将缺少的指示器列添加到transform
当add_indicator
设置为True
并在过程中观察到缺失值fit
. #26600 通过 Shreesha Kumar Bhat .
sklearn.metrics
#
Fix 与使用的记分器
metrics.get_scorer
正确处理多标签指标矩阵。 #27002 通过 Guillaume Lemaitre .
sklearn.mixture
#
Fix 的初始化
mixture.GaussianMixture
来自用户提供precisions_init
为covariance_type
的full
或tied
不正确,已修复。 #26416 通过 Yang Tao .
sklearn.neighbors
#
Fix
neighbors.KNeighborsClassifier.predict
不再提出例外pandas.DataFrames
输入. #26772 通过 Jérémie du Boisberranger .Fix 重新引入
sklearn.neighbors.BallTree.valid_metrics
和sklearn.neighbors.KDTree.valid_metrics
public class attributes. #26754 通过 Julien Jerphanion .Fix
sklearn.model_selection.HalvingRandomSearchCV
当输入到param_distributions
参数是一个字典列表。 #26893 通过 Stefanie Senger .Fix 基于邻居的估计器现在可以正确工作,
metric="minkowski"
以及指标参数p
范围为0 < p < 1
,无论dtype
的X
. #26760 通过 Shreesha Kumar Bhat .
sklearn.preprocessing
#
Fix
preprocessing.LabelEncoder
正确接受y
as a keyword argument. #26940 by Thomas Fan .Fix
preprocessing.OneHotEncoder
当出现时,显示信息更多的错误消息sparse_output=True
and the output is configured to be pandas. #26931 by Thomas Fan .
sklearn.tree
#
Fix
tree.plot_tree
现在接受class_names=True
如文件所示。 #26903 通过 Thomas RoehrFix 的
feature_names
参数tree.plot_tree
现在接受任何类型的数组,而不仅仅是列表。 #27292 通过 Rahil Parikh .
版本1.3.0#
June 2023
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
Enhancement
multiclass.OutputCodeClassifier.predict
现在使用更有效的成对距离缩减。因此,决胜策略不同,因此预测的标签可能会不同。 #25196 通过 Guillaume Lemaitre .Enhancement 的
fit_transform
方法decomposition.DictionaryLearning
更高效,但可能会产生与之前版本不同的结果,transform_algorithm
并不等同于fit_algorithm
并且迭代次数很少。 #24871 通过 Omar Salman .Enhancement 的
sample_weight
参数现在将用于重心初始化cluster.KMeans
,cluster.BisectingKMeans
和cluster.MiniBatchKMeans
.此更改将打破向后兼容性,因为从相同随机种子生成的数字将会不同。 #25752 通过 Hleb Levitski , Jérémie du Boisberranger , Guillaume Lemaitre .Fix 更一致地对待
W
和H
矩阵期间fit
和transform
步骤decomposition.NMF
和decomposition.MiniBatchNMF
它可以产生与以前的版本不同的结果。 #25438 通过 Yotam Avidar-Constantini .Fix
decomposition.KernelPCA
可能会产生不同的结果inverse_transform
如果gamma
是None
.现在它将被正确选择为1/n_features
它所拟合的数据,而以前它可能被错误地选择为1/n_features
传递给的数据的数量inverse_transform
.一个新属性gamma_
是为了揭示的实际价值gamma
每次调用内核时都会使用。 #26337 通过 Yao Xiao .
更改显示#
Enhancement
model_selection.LearningCurveDisplay
默认情况下显示列车曲线和测试曲线。您可以设置score_type="test"
保持过去的行为。 #25120 通过 Guillaume Lemaitre .Fix
model_selection.ValidationCurveDisplay
现在接受将列表传递给param_range
参数. #27311 通过 Arturo Amor .
影响所有模块的更改#
Enhancement 的
get_feature_names_out
以下类的方法现在引发NotFittedError
如果实例不适合。这确保了所有估计量中的误差与get_feature_names_out
法的
NotFittedError
显示一条信息性消息,要求使用适当的参数来匹配实例。#25294 , #25308 , #25291 , #25367 , #25402 ,由 John Pangas , Rahil Parikh ,而且 Alex Buzenet .
Enhancement 添加多线程Cython例程来计算由稀疏CSR矩阵和密集NumPy组成的一对数据集的平方欧几里得距离(有时随后进行融合约简操作)。
这可以提高以下函数和估计器的性能:
当将稀疏CSR矩阵传递给
predict
或transform
依赖于密集NumPy表示来存储其拟合参数(或相反)的估计器方法。例如,
sklearn.neighbors.NearestNeighbors.kneighbors
对于这种情况,在常用笔记本电脑上的速度现在可提高两倍。#25044 通过 Julien Jerphanion .
Enhancement 所有内部依赖于BEP多线程(通过Cython)的估计器现在使用默认情况下等于物理(而不是逻辑)核心数量的线程数量。过去,我们观察到,根据算法和数据形状的不同,在表面处理主机上使用尽可能多的线程作为逻辑核心有时可能会导致严重的性能问题。请注意,仍然可以手动调整BEP使用的线程数,如中所述 并行性 .
实验性/开发中#
Major Feature Metadata routing 此版本中包含了相关的基本方法。此功能仅通过
enable_metadata_routing
feature flag which can be enabled usingsklearn.set_config
andsklearn.config_context
. For now this feature is mostly useful for third party developers to prepare their code base for metadata routing, and we strongly recommend that they also hide it behind the same feature flag, rather than having it enabled by default. #24027 by Adrin Jalali , Benjamin Bossan ,而且 Omar Salman .
Changelog#
sklearn
#
Feature 添加了一个新选项
skip_parameter_validation
,到函数sklearn.set_config
和上下文管理器sklearn.config_context
,这允许跳过传递给估计器和公共函数的参数的验证。这对于加快代码速度很有用,但应谨慎使用,因为它可能会导致意外行为或在设置无效参数时引发晦涩的错误消息。 #25815 通过 Jérémie du Boisberranger .
sklearn.base
#
Feature A
__sklearn_clone__
protocol is now available to override the default behavior ofbase.clone
. #24568 by Thomas Fan .Fix
base.TransformerMixin
现在当前保留一个命名的数组的类,如果transform
returns a namedtuple. #26121 by Thomas Fan .
sklearn.calibration
#
Fix
calibration.CalibratedClassifierCV
现在不强制对样本进行对齐fit_params
. #25805 by Adrin Jalali .
sklearn.cluster
#
Major Feature 添加
cluster.HDBSCAN
提出了一种基于密度的现代层次聚类算法。类似于cluster.OPTICS
,可以视为对cluster.DBSCAN
通过允许分层而不是平面集群,但它的方法有所不同cluster.OPTICS
.该算法对于其超参数的值非常稳健,并且可以用于各种数据,而无需进行太多(如果有的话)调整。此实现是对中HDSCAN原始实现的改编 scikit-learn-contrib/hdbscan ,由 Leland McInnes 等人
Enhancement 的
sample_weight
参数现在将用于重心初始化cluster.KMeans
,cluster.BisectingKMeans
和cluster.MiniBatchKMeans
.此更改将打破向后兼容性,因为从相同随机种子生成的数字将会不同。 #25752 通过 Hleb Levitski , Jérémie du Boisberranger , Guillaume Lemaitre .Fix
cluster.KMeans
,cluster.MiniBatchKMeans
和cluster.k_means
现在正确处理n_init="auto"
和init
是一个类似数组的,在这种情况下运行一个初始化。 #26657 通过 Binesh Bannerjee .API Change 的
sample_weight
参数predict
为cluster.KMeans.predict
和cluster.MiniBatchKMeans.predict
现已废弃,并将在v1.5中删除。 #25251 通过 Hleb Levitski .API Change 的
Xred
argument incluster.FeatureAgglomeration.inverse_transform
is renamed toXt
and will be removed in v1.5. #26503 by Adrin Jalali .
sklearn.compose
#
Fix
compose.ColumnTransformer
当的各个变压器ColumnTransformer
output pandas dataframes with indexes that are not consistent with each other and the output is configured to be pandas. #26286 by Thomas Fan .Fix
compose.ColumnTransformer
正确设置余项的输出时set_output
is called. #26323 by Thomas Fan .
sklearn.covariance
#
Fix 允许
alpha=0
在covariance.GraphicalLasso
以符合covariance.graphical_lasso
. #26033 通过 Genesis Valencia .Fix
covariance.empirical_covariance
现在,当输入不合适时,会给出信息性错误消息。 #26108 通过 Quentin Barthélemy .API Change 不赞成
cov_init
在covariance.graphical_lasso
在1.3中,因为参数没有影响。它将在1.5中被删除。 #26033 通过 Genesis Valencia .API Change Adds
costs_
fitted attribute incovariance.GraphicalLasso
andcovariance.GraphicalLassoCV
. #26033 by Genesis Valencia.API Change 添加
covariance
参数covariance.GraphicalLasso
. #26033 通过 Genesis Valencia .API Change 添加
eps
参数covariance.GraphicalLasso
,covariance.graphical_lasso
,而且covariance.GraphicalLassoCV
. #26033 通过 Genesis Valencia .
sklearn.datasets
#
Enhancement 允许使用参数覆盖用于打开ARFF文件的参数
read_csv_kwargs
在datasets.fetch_openml
使用pandas解析器时。 #26433 通过 Guillaume Lemaitre .Fix
datasets.fetch_openml
返回改进的数据类型,as_frame=True
andparser="liac-arff"
. #26386 by Thomas Fan .Fix Following the ARFF specs, only the marker
"?"
is now considered as a missing values when opening ARFF files fetched usingdatasets.fetch_openml
when using the pandas parser. The parameterread_csv_kwargs
allows to overwrite this behaviour. #26551 by Guillaume Lemaitre.Fix
datasets.fetch_openml
将持续使用np.nan
作为两个解析器的缺失标记"pandas"
和"liac-arff"
. #26579 通过 Guillaume Lemaitre .API Change 的
data_transposed
论点datasets.make_sparse_coded_signal
已被弃用并将在v1.5中删除。 #25784 通过 @Jérémie du Boisberranger .
sklearn.decomposition
#
Efficiency
decomposition.MiniBatchDictionaryLearning
和decomposition.MiniBatchSparsePCA
通过避免重复验证,现在可以更快地处理小批量。 #25490 通过 Jérémie du Boisberranger .Enhancement
decomposition.DictionaryLearning
现在接受参数callback
为了与功能保持一致decomposition.dict_learning
. #24871 通过 Omar Salman .Fix 更一致地对待
W
和H
矩阵期间fit
和transform
步骤decomposition.NMF
和decomposition.MiniBatchNMF
它可以产生与以前的版本不同的结果。 #25438 通过 Yotam Avidar-Constantini .API Change 的
W
argument indecomposition.NMF.inverse_transform
anddecomposition.MiniBatchNMF.inverse_transform
is renamed toXt
and will be removed in v1.5. #26503 by Adrin Jalali .
sklearn.discriminant_analysis
#
Enhancement
discriminant_analysis.LinearDiscriminantAnalysis
现在支持 PyTorch .看到 数组API支持(实验性) 了解更多详细信息。 #25956 通过 Thomas Fan .
sklearn.ensemble
#
Feature
ensemble.HistGradientBoostingRegressor
现在通过loss="gamma"
.使用伽玛偏差作为损失函数对于建模倾斜分布、严格正值目标很方便。 #22409 通过 Christian Lorentzen .Feature 通过将可调用内容传递给计算自定义袋外得分
ensemble.RandomForestClassifier
,ensemble.RandomForestRegressor
,ensemble.ExtraTreesClassifier
和ensemble.ExtraTreesRegressor
. #25177 通过 Tim Head .Feature
ensemble.GradientBoostingClassifier
现在通过oob_scores_
或oob_score_
美德.先知-愿 #24882 通过 Ashwin Mathur .Efficiency
ensemble.IsolationForest
预测时间现在更快了(通常是8倍或更多)。在内部,估计器现在预先计算每棵树的决策路径长度fit
时间因此,不可能加载用scikit-learn 1.2训练的估计器,使其用scikit-learn 1.3进行预测:需要用scikit-learn 1.3进行再训练。 #25186 通过 Felipe Breve Siola .Efficiency
ensemble.RandomForestClassifier
和ensemble.RandomForestRegressor
与warm_start=True
现在只有当实际上有更多时才重新计算袋外分数n_estimators
在随后fit
电话 #26318 通过 Joshua Choo Yun Keat .Enhancement
ensemble.BaggingClassifier
和ensemble.BaggingRegressor
暴露allow_nan
tag from the underlying estimator. #25506 by Thomas Fan .Fix
ensemble.RandomForestClassifier.fit
集max_samples = 1
当max_samples
是一个漂浮物,round(n_samples * max_samples) < 1
. #25601 通过 Jan Fidor .Fix
ensemble.IsolationForest.fit
调用时不再警告缺少要素名称contamination
不"auto"
在熊猫摇篮上。 #25931 通过 Yao Xiao .Fix
ensemble.HistGradientBoostingRegressor
和ensemble.HistGradientBoostingClassifier
遵循LightGBM和pandas的惯例,将分类特征的负值始终视为缺失值。 #25629 通过 Thomas Fan .Fix 修复废弃的问题
base_estimator
在ensemble.AdaBoostClassifier
和ensemble.AdaBoostRegressor
中引入 #23819 . #26242 通过 Marko Toplak .
sklearn.exceptions
#
Feature 添加
exceptions.InconsistentVersionWarning
当scikit-learn估计器用与估计器腌制的scikit-learn版本不一致的scikit-learn版本解腌制时,会引发该问题。 #25297 通过 Thomas Fan .
sklearn.feature_extraction
#
API Change
feature_extraction.image.PatchExtractor
现在遵循scikit-learn的Transformer API。此类被定义为无状态Transformer,这意味着它不需要调用fit
然后再调用transform
.参数验证仅在fit
时间 #24230 通过 Guillaume Lemaitre .
sklearn.feature_selection
#
Enhancement 所有选择器
sklearn.feature_selection
转换时将保留DataFrame的dType。 #25102 通过 Thomas Fan .Fix
feature_selection.SequentialFeatureSelector
的cv
参数现在支持生成器。 #25973 通过Yao Xiao <Charlie-XIAO>
.
sklearn.impute
#
Enhancement 添加了参数
fill_value
到impute.IterativeImputer
. #25232 通过 Thijs van Weezel .Fix
impute.IterativeImputer
现在,当set_config(transform_output="pandas")
. #26454 by Thomas Fan .
sklearn.inspection
#
Enhancement 新增支持
sample_weight
在inspection.partial_dependence
和inspection.PartialDependenceDisplay.from_estimator
.这允许在汇总我们正在进行检查的网格的每个值时进行加权平均。该选项仅在以下情况下可用method
设置为brute
. #25209 和 #26644 通过 Carlo Lemos .API Change
inspection.partial_dependence
返回一个utils.Bunch
使用新密钥:grid_values
. Thevalues
key is deprecated in favor ofgrid_values
and thevalues
key will be removed in 1.5. #21809 and #25732 by Thomas Fan .
sklearn.kernel_approximation
#
Fix
kernel_approximation.AdditiveChi2Sampler
现在是无国籍的。的sample_interval_
属性已被弃用,将在1.5中删除。 #25190 通过 Vincent Maladière .
sklearn.linear_model
#
Efficiency 在以下情况下避免数据缩放
sample_weight=None
以及其他不必要的数据副本以及意外的密集到稀疏数据转换linear_model.LinearRegression
. #26207 通过 Olivier Grisel .Enhancement
linear_model.SGDClassifier
,linear_model.SGDRegressor
和linear_model.SGDOneClassSVM
现在保留d类型numpy.float32
. #25587 通过 Omar Salman .Enhancement 的
n_iter_
属性已包含在linear_model.ARDRegression
以暴露达到停止标准所需的实际迭代次数。 #25697 通过 John Pangas .Fix 使用更稳健的标准来检测
linear_model.LogisticRegression
与penalty="l1"
andsolver="liblinear"
on linearly separable problems. #25214 by Tom Dupre la Tour .Fix 修复通话时崩溃
fit
对linear_model.LogisticRegression
与solver="newton-cholesky"
和max_iter=0
它未能在第一次参数更新之前检查模型的状态。 #26653 通过 Olivier Grisel .API Change 不赞成
n_iter
赞成max_iter
在linear_model.BayesianRidge
和linear_model.ARDRegression
.n_iter
将在scikit-learn 1.5中删除。这一变化使这些估计量与其余估计量一致。 #25697 通过 John Pangas .
sklearn.manifold
#
Fix
manifold.Isomap
现在,当set_config(transform_output="pandas")
. #26454 by Thomas Fan .
sklearn.metrics
#
Feature 添加
zero_division=np.nan
多个分类指标:metrics.precision_score
,metrics.recall_score
,metrics.f1_score
,metrics.fbeta_score
,metrics.precision_recall_fscore_support
,metrics.classification_report
.当zero_division=np.nan
并且存在零除法,则度量是未定义的并且被排除在平均之外。当不用于平均值时,返回的值为np.nan
. #25531 通过 Marc Torrellas Socastro .Feature
metrics.average_precision_score
现在支持多类情况。 #17388 通过 Geoffrey Bolmier 和 #24769 通过 Ashwin Mathur .Efficiency 期望互信息的计算
metrics.adjusted_mutual_info_score
现在,当唯一标签的数量较多并且其内存使用量总体上减少时,速度会更快。 #25713 通过 Kshitij Mathur , Guillaume Lemaitre , Omar Salman 和 Jérémie du Boisberranger .Enhancement
metrics.silhouette_samples
现在接受样本之间成对距离的稀疏矩阵或特征数组。 #18723 通过 Sahil Gupta 和 #24677 通过 Ashwin Mathur .Enhancement 新参数
drop_intermediate
添加至metrics.precision_recall_curve
,metrics.PrecisionRecallDisplay.from_estimator
,metrics.PrecisionRecallDisplay.from_predictions
,它降低了一些次优阈值,以创建更轻的精确召回曲线。 #24668 通过 @dberenbaum .Enhancement
metrics.RocCurveDisplay.from_estimator
和metrics.RocCurveDisplay.from_predictions
现在接受两个新关键词,plot_chance_level
和chance_level_kw
来绘制基线概率水平。这条线暴露在chance_level_
属性 #25987 通过 Yao Xiao .Enhancement
metrics.PrecisionRecallDisplay.from_estimator
和metrics.PrecisionRecallDisplay.from_predictions
现在接受两个新关键词,plot_chance_level
和chance_level_kw
来绘制基线概率水平。这条线暴露在chance_level_
属性 #26019 通过 Yao Xiao .Fix
metrics.pairwise.manhattan_distances
现在支持只读稀疏数据集。 #25432 通过 Julien Jerphanion .Fix 固定
metrics.classification_report
以便空输入将返回np.nan
.此前,“宏avg”和weighted avg
会回来例如f1-score=np.nan
和f1-score=0.0
,不一致。现在,他们都回来了np.nan
. #25531 通过 Marc Torrellas Socastro .Fix
metrics.ndcg_score
现在为长度为1的输入提供有意义的错误消息。 #25672 通过 Lene Preuss 和 Wei-Chun Chu .Fix
metrics.log_loss
如果参数的值会引发警告y_pred
没有规范化,而不是在指标中实际规范化它们。从1.5开始,这将引发错误。 #25299 通过 @Omar Salman <OmarManzoor .Fix 在
metrics.roc_curve
,使用阈值np.inf
而不是任意的max(y_score) + 1
.该阈值与ROC曲线点相关联tpr=0
和fpr=0
. #26194 通过 Guillaume Lemaitre .Fix 的
'matching'
使用SciPy>=1.9时已删除指标以与scipy.spatial.distance
不支持'matching'
anymore. #26264 通过 Barata T. OnggoAPI Change 的
eps
参数metrics.log_loss
已被弃用并将在1.5中删除。 #25299 通过 Omar Salman .
sklearn.gaussian_process
#
Fix
gaussian_process.GaussianProcessRegressor
有新的论点n_targets
,用于决定从先验分布中抽样时的输出数量。 #23099 通过 Zhehao Liu .
sklearn.mixture
#
Efficiency
mixture.GaussianMixture
现在更加高效,并且如果用户给出权重、平均值和精确度,将绕过不必要的初始化。 #26021 通过 Jiawei Zhang .
sklearn.model_selection
#
Major Feature 添加了班级
model_selection.ValidationCurveDisplay
这使得可以轻松绘制该函数获得的验证曲线model_selection.validation_curve
. #25120 通过 Guillaume Lemaitre .API Change 参数
log_scale
班上model_selection.LearningCurveDisplay
已在1.3中废弃,并将在1.5中删除。可以通过直接在ax
对象,否则将根据数据点的间隔自动设置。 #25120 通过 Guillaume Lemaitre .Enhancement
model_selection.cross_validate
接受新参数return_indices
返回每个简历拆分的训练测试指数。 #25659 通过 Guillaume Lemaitre .
sklearn.multioutput
#
Fix
getattr
对multioutput.MultiOutputRegressor.partial_fit
和multioutput.MultiOutputClassifier.partial_fit
现在正确提出一个AttributeError
if done before callingfit
. #26333 by Adrin Jalali .
sklearn.naive_bayes
#
Fix
naive_bayes.GaussianNB
不再筹集ZeroDivisionError
当提供时sample_weight
将问题简化为单个类fit
. #24140 通过 Jonathan Ohayon 和 Chiara Marmo .
sklearn.neighbors
#
Enhancement The performance of
neighbors.KNeighborsClassifier.predict
and ofneighbors.KNeighborsClassifier.predict_proba
has been improved whenn_neighbors
is large andalgorithm="brute"
with non Euclidean metrics. #24076 by Meekail Zain, Julien Jerphanion.Fix 删除对
KulsinskiDistance
在neighbors.BallTree
.这种差异不是一个指标,BallTree无法支持。 #25417 通过 Guillaume Lemaitre .API Change 对指标以外的支持
euclidean
和manhattan
对于呼叫者来说neighbors.NearestNeighbors
已弃用,并将在1.5版中删除。 #24083 通过 Valentin Laurent .
sklearn.neural_network
#
Fix
neural_network.MLPRegressor
andneural_network.MLPClassifier
reports the rightn_iter_
whenwarm_start=True
. It corresponds to the number of iterations performed on the current call tofit
instead of the total number of iterations performed since the initialization of the estimator. #25443 by Marvin Krawutschke.
sklearn.pipeline
#
Feature
pipeline.FeatureUnion
现在可以使用索引符号(例如feature_union["scalar"]
) to access transformers by name. #25093 by Thomas Fan .Feature
pipeline.FeatureUnion
现在可以访问feature_names_in_
如果X
期间看到的价值.fit
具有columns
属性且所有列都是字符串。例如当X
是一pandas.DataFrame
#25220 通过 Ian Thompson .Fix
pipeline.Pipeline.fit_transform
现在提出了AttributeError
if the last step of the pipeline does not supportfit_transform
. #26325 by Adrin Jalali .
sklearn.preprocessing
#
Major Feature 介绍
preprocessing.TargetEncoder
其是基于以类别的值为条件的目标平均值的类别编码。 #25334 通过 Thomas Fan .Feature
preprocessing.OrdinalEncoder
现在支持将不常见的类别分组为单个功能。通过指定如何选择不频繁类别来启用不频繁类别min_frequency
ormax_categories
. #25677 by Thomas Fan .Enhancement
preprocessing.PolynomialFeatures
现在在处理稀疏时先验计算扩展项的数量csr
矩阵以优化选择dtype
为indices
和indptr
.现在可以输出csr
矩阵与np.int32
indices/indptr
当元素足够时,组件将自动使用np.int64
对于足够大的矩阵。 #20524 通过 niuk-a 和 #23731 通过 Meekail ZainEnhancement 新参数
sparse_output
添加至preprocessing.SplineTransformer
,自SciPy 1.8起可用。如果sparse_output=True
,preprocessing.SplineTransformer
返回稀疏的CSR矩阵。 #24145 通过 Christian Lorentzen .Enhancement 新增了一项
feature_name_combiner
参数以preprocessing.OneHotEncoder
.这指定了一个自定义可调用来创建要由返回的要素名称preprocessing.OneHotEncoder.get_feature_names_out
.可调用组合输入参数(input_feature, category)
到一根绳子。 #22506 通过 Mario Kostelac .Enhancement 新增支持
sample_weight
在preprocessing.KBinsDiscretizer
.这允许指定参数sample_weight
对于安装时要使用的每个样本。该选项仅在以下情况下可用strategy
设置为quantile
和kmeans
. #24935 通过 Seladus , Guillaume Lemaitre ,而且 Dea María Léon , #25257 通过 Hleb Levitski .Enhancement 通过子采样
subsample
参数现在可以用于preprocessing.KBinsDiscretizer
无论使用何种策略。 #26424 通过 Jérémie du Boisberranger .Fix
preprocessing.PowerTransformer
现在,当set_config(transform_output="pandas")
. #26454 by Thomas Fan .Fix
preprocessing.PowerTransformer
now correctly raises error when usingmethod="box-cox"
on data with a constantnp.nan
column. #26400 by Yao Xiao.Fix
preprocessing.PowerTransformer
与method="yeo-johnson"
现在保持不变的要素不变,而不是用lambdas_
适合的参数。 #26566 通过 Jérémie du Boisberranger .API Change 的默认值
subsample
参数preprocessing.KBinsDiscretizer
将从None
到200_000
在1.5版本中,strategy="kmeans"
或strategy="uniform"
. #26424 通过 Jérémie du Boisberranger .
sklearn.svm
#
API Change
dual
参数现在接受auto
选择svm.LinearSVC
和svm.LinearSVR
. #26093 通过 Hleb Levitski .
sklearn.tree
#
Major Feature
tree.DecisionTreeRegressor
和tree.DecisionTreeClassifier
支持缺失值时splitter='best'
and criterion isgini
,entropy
, orlog_loss
, for classification orsquared_error
,friedman_mse
, orpoisson
for regression. #23595, #26376 by Thomas Fan .Enhancement 新增了一项
class_names
参数以tree.export_text
.这允许指定参数class_names
按数字递减顺序计算每个目标类别。 #25387 通过 William M 和 crispinlogan .Fix
tree.export_graphviz
和tree.export_text
现在接受feature_names
和class_names
作为类似数组的而不是列表的。 #26289 通过 Yao Xiao
sklearn.utils
#
Fix 修复
utils.check_array
正确转换pandas扩展数组。 #25813 和 #26106 通过 Thomas Fan .Fix
utils.check_array
现在通过返回具有对象dype的ndArray来支持具有扩展数组和对象dtypes的pandas DataFrames。 #25814 通过 Thomas Fan .API Change
utils.estimator_checks.check_transformers_unfitted_stateless
引入是为了确保无状态变压器不会升高NotFittedError
期间transform
没有事先致电fit
或fit_transform
. #25190 通过 Vincent Maladière .API Change A
FutureWarning
is now raised when instantiating a class which inherits from a deprecated base class (i.e. decorated byutils.deprecated
) and which overrides the_ _init__`方法。 :pr:`25733
通过 Brigitta Sipőcz 和 Jérémie du Boisberranger .
sklearn.semi_supervised
#
Enhancement
semi_supervised.LabelSpreading.fit
和semi_supervised.LabelPropagation.fit
现在接受稀疏指标。 #19664 通过 Kaushik Amar Das .
杂项#
Enhancement 替换过时的例外
EnvironmentError
,IOError
和WindowsError
. #26466 通过 Dimitri Papadopoulos ORfanos .
代码和文档贡献者
感谢自1.2版本以来为项目维护和改进做出贡献的所有人,包括:
2357juan, Abhishek Singh Kushwah, Adam Handke, Adam Kania, Adam Li, adienes, Admir Demiraj, adoublet, Adrin Jalali, A.H.Mansouri, Ahmedbgh, Ala-Na, Alex Buzenet, AlexL, Ali H. El-Kassas, amay, András Simon, André Pedersen, Andrew Wang, Ankur Singh, annegnx, Ansam Zedan, Anthony22-dev, Artur Hermano, Arturo Amor, as-90, ashah002, Ashish Dutt, Ashwin Mathur, AymericBasset, Azaria Gebremichael, Barata Tripramudya Onggo, Benedek Harsanyi, Benjamin Bossan, Bharat Raghunathan, Binesh Bannerjee, Boris Feld, Brendan Lu, Brevin Kunde, cache-missing, Camille Troillard, Carla J, carlo, Carlo Lemos, c-git, Changyao Chen, Chiara Marmo, Christian Lorentzen, Christian Veenhuis, Christine P. Chai, crispinlogan, Da-Lan, DanGonite57, Dave Berenbaum, davidblnc, david-cortes, Dayne, Dea María Léon, Denis, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, Dmitry Nesterov, Dominic Fox, Dominik Prodinger, Edern, Ekaterina Butyugina, Elabonga Atuo, Emir, farhan khan, Felipe Siola, futurewarning, Gael Varoquaux, genvalen, Hleb Levitski, Guillaume Lemaitre, gunesbayir, Haesun Park, hujiahong726, i-aki-y, Ian Thompson, Ido M, Ily, Irene, Jack McIvor, jakirkham, James Dean, JanFidor, Jarrod Millman, JB Mountford, Jérémie du Boisberranger, Jessicakk0711, Jiawei Zhang, Joey Ortiz, JohnathanPi, John Pangas, Joshua Choo Yun Keat, Joshua Hedlund, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kaushik Amar Das, Kento Nozawa, Kian Eliasi, Kilian Kluge, Lene Preuss, Linus, Logan Thomas, Loic Esteve, Louis Fouquet, Lucy Liu, Madhura Jayaratne, Marc Torrellas Socastro, Maren Westermann, Mario Kostelac, Mark Harfouche, Marko Toplak, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, Max Halford, maximeSaur, Maxwell Liu, m. bou, mdarii, Meekail Zain, Mikhail Iljin, murezzda, Nawazish Alam, Nicola Fanelli, Nightwalkx, Nikolay Petrov, Nishu Choudhary, NNLNR, npache, Olivier Grisel, Omar Salman, ouss1508, PAB, Pandata, partev, Peter Piontek, Phil, pnucci, Pooja M, Pooja Subramaniam, precondition, Quentin Barthélemy, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Rushil Desai, Sadra Barikbin, SANJAI_3, Sashka Warner, Scott Gigante, Scott Gustafson, searchforpassion, Seoeun Hong, Shady el Gewily, Shiva chauhan, Shogo Hida, Shreesha Kumar Bhat, sonnivs, Sortofamudkip, Stanislav (Stanley) Modrak, Stefanie Senger, Steven Van Vaerenbergh, Tabea Kossen, Théophile Baranger, Thijs van Weezel, Thomas A Caswell, Thomas Germer, Thomas J. Fan, Tim Head, Tim P, Tom Dupré la Tour, tomiock, tspeng, Valentin Laurent, Veghit, VIGNESH D, Vijeth Moudgalya, Vinayak Mehta, Vincent M, Vincent-violet, Vyom Pathak, William M, windiana42, Xiao Yuan, Yao Xiao, Yaroslav Halchenko, Yotam Avidar-Constantini, Yuchen Zhou, Yusuf Raji, zeeshan lone