cross_val_score#

sklearn.model_selection.cross_val_score(estimator, X, y=None, *, groups=None, scoring=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', error_score=nan)[source]#

通过交叉验证评估分数。

Read more in the User Guide.

参数:
estimator实现 'fit' 方法的估计器对象

用于拟合数据的对象。

Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

要拟合的数据。例如可以是列表或数组。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象,默认=None

在监督学习中尝试预测的目标变量。

groups形状为 (n_samples,) 的类数组对象,默认=None

在将数据集拆分为训练/测试集时使用的样本组标签。仅与“Group”cv 实例(例如 GroupKFold)结合使用。

版本 1.4 中更改: 只有在未通过 sklearn.set_config(enable_metadata_routing=True) 启用元数据路由时,才能传递 groups。当启用路由时,请通过 params 参数与其他元数据一起传递 groups。例如:cross_val_score(..., params={'groups': groups})

scoringstr 或可调用对象,默认=None

用于评估 estimator 在交叉验证拆分上的性能的策略。

  • str: 有关选项,请参阅 String name scorers

  • 可调用对象:一个评分可调用对象(例如函数),其签名为 scorer(estimator, X, y),应仅返回单个值。有关详细信息,请参阅 可调用评分器

  • None:使用 estimator默认评估标准

与在 cross_validate 中使用 scoring 类似,但只允许单个指标。

cvint, cross-validation generator or an iterable, default=None

确定交叉验证拆分策略。cv 的可能输入包括

  • None,使用默认的 5 折交叉验证,

  • int,指定 (Stratified)KFold 中的折叠数,

  • CV 分割器,

  • 一个可迭代对象,生成作为索引数组的 (train, test) 拆分。

对于 int/None 输入,如果估计器是分类器且 y 是二元或多类,则使用 StratifiedKFold。在所有其他情况下,使用 KFold。这些拆分器实例化时设置了 shuffle=False,因此拆分在不同调用中将是相同的。

有关此处可使用的各种交叉验证策略,请参阅 用户指南

版本 0.22 中更改: None 时,cv 的默认值从 3 折更改为 5 折。

n_jobsint, default=None

并行运行的作业数。估计器的训练和分数的计算在交叉验证拆分上并行进行。None 表示 1,除非在 joblib.parallel_backend 上下文中。-1 表示使用所有处理器。有关详细信息,请参阅 词汇表

verboseint, default=0

详细程度。

paramsdict, 默认=None

要传递给底层估计器的 fit 方法、评分器和 CV 拆分器的参数。

1.4 版本新增。

pre_dispatchint or str, default=’2*n_jobs’

控制并行执行期间调度的作业数量。当调度的作业多于 CPU 可处理的数量时,减少此数字有助于避免内存消耗激增。此参数可以为

  • None,在这种情况下,所有作业会立即创建和生成。将其用于轻量级和快速运行的作业,以避免因按需生成作业而导致的延迟

  • 一个 int 值,给出生成的总作业的确切数量。

  • 一个 str,给出 n_jobs 函数的表达式,例如 ‘2*n_jobs’。

error_score‘raise’ or numeric, default=np.nan

如果估计器拟合中发生错误,分配给分数的值。如果设置为 'raise',则会引发错误。如果给定一个数值,则会引发 FitFailedWarning。

0.20 版本新增。

返回:
scores形状为 (len(list(cv)),) 的浮点数 ndarray

交叉验证每次运行中估计器的分数数组。

另请参阅

cross_validate

用于在多个指标上运行交叉验证,并返回训练分数、拟合时间和评分时间。

cross_val_predict

获取交叉验证每次拆分的预测结果,用于诊断目的。

sklearn.metrics.make_scorer

从性能指标或损失函数创建评分器。

示例

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_score
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> print(cross_val_score(lasso, X, y, cv=3))
[0.3315057  0.08022103 0.03531816]