注意
前往末尾下载完整示例代码。或者通过 JupyterLite 或 Binder 在浏览器中运行此示例
scikit-learn 1.7 发布亮点#
我们很高兴地宣布 scikit-learn 1.7 发布!此版本增加了许多错误修复和改进,以及一些关键新功能。下面我们将详细介绍此版本的亮点。有关所有更改的完整列表,请参阅发布说明。
安装最新版本(使用 pip)
pip install --upgrade scikit-learn
或使用 conda
conda install -c conda-forge scikit-learn
改进了估计器的 HTML 表示#
估计器的 HTML 表示现在包含一个包含参数列表及其值的章节。非默认参数以橙色突出显示。还提供了一个复制按钮,无需调用 get_params
方法即可复制“完全限定”参数名称。这在为复杂管道的网格搜索或随机搜索定义参数网格时特别有用。
请参阅下面的示例,点击不同的估计器块以查看改进后的 HTML 表示。
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
model = make_pipeline(StandardScaler(with_std=False), LogisticRegression(C=2.0))
model
直方图梯度提升估计器的自定义验证集#
类 ensemble.HistGradientBoostingClassifier
和 ensemble.HistGradientBoostingRegressor
现在支持直接将自定义验证集传递给 fit
方法进行早停,使用 X_val
、y_val
和 sample_weight_val
参数。在 pipeline.Pipeline
中,验证集 X_val
可以使用 transform_input
参数与 X
一起转换。
import sklearn
from sklearn.datasets import make_classification
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
sklearn.set_config(enable_metadata_routing=True)
X, y = make_classification(random_state=0)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=0)
clf = HistGradientBoostingClassifier()
clf.set_fit_request(X_val=True, y_val=True)
model = Pipeline([("sc", StandardScaler()), ("clf", clf)], transform_input=["X_val"])
model.fit(X, y, X_val=X_val, y_val=y_val)
从交叉验证结果绘制 ROC 曲线#
类 metrics.RocCurveDisplay
有一个新的类方法 from_cv_results
,它允许轻松地从 model_selection.cross_validate
的结果中绘制多个 ROC 曲线。
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import RocCurveDisplay
from sklearn.model_selection import cross_validate
X, y = make_classification(n_samples=150, random_state=0)
clf = LogisticRegression(random_state=0)
cv_results = cross_validate(clf, X, y, cv=5, return_estimator=True, return_indices=True)
_ = RocCurveDisplay.from_cv_results(cv_results, X, y)

数组 API 支持#
自 1.6 版本以来,多个函数已更新以支持与数组 API 兼容的输入,特别是来自 sklearn.metrics
模块的度量。
此外,在使用 scikit-learn 中的实验性数组 API 支持时,不再需要安装 array-api-compat
包。
有关使用 PyTorch 或 CuPy 等与数组 API 兼容的库来使用 scikit-learn 的说明,请参阅数组 API 支持页面。
改进了多层感知器的 API 一致性#
neural_network.MLPRegressor
有一个新的参数 loss
,现在除了默认的“squared_error”损失外,还支持“poisson”损失。此外,neural_network.MLPClassifier
和 neural_network.MLPRegressor
估计器现在支持样本权重。这些改进旨在提高这些估计器与 scikit-learn 中其他估计器的一致性。
向稀疏数组迁移#
为了准备 SciPy 从稀疏矩阵到稀疏数组的迁移,所有接受稀疏矩阵作为输入的 scikit-learn 估计器现在也接受稀疏数组。
脚本总运行时间: (0 分钟 0.206 秒)
相关示例