sklearn.model_selection.cross_val_score

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

[源码]

通过交叉验证评估准确率

用户指南中阅读更多内容。

参数 说明
estimator estimator object implementing ‘fit’
用于拟合数据的对象。
X array-like of shape (n_samples, n_features)
用于拟合的数据。例如可以是一个列表或数组。
y array-like of shape (n_samples,) or (n_samples, n_outputs), default=None
在监督学习的情况下要尝试预测的目标变量。
groups array-like of shape (n_samples,), default=None
将数据集切分为训练集或测试集时使用的样本的分组标签。仅与“ Group” cv 实例(例如GroupKFold)结合使用。
scoring 一个str(参见模型评估文档)或一个信息为scorer(estimator, X, y)的可调用对象或函数的评分器,它应该只返回一个值。

cross_validate类似, 但只允许使用一个指标。

如果为None,则使用估计器的默认评分器(如果可用)。
cv int, cross-validation generator or an iterable, default=None
确定交叉验证切分策略。cv值可以输入:

- None,默认使用5折交叉验证
- int,用于指定(Stratified)KFold的折数
- CV splitter,
- 可迭代输出训练集和测试集的切分作为索引数组

对于int或 None输入,如果估计器是分类器,并且y是二分类或多分类,则使用StratifiedKFold。在所有其他情况下,均使用KFold

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

在版本0.22中:如果cv为None,默认从3折更改为5折。
n_jobs int, default=None
用于进行计算的CPU数量。 None除非在joblib.parallel_backend环境中,否则表示1 。 -1表示使用所有处理器。有关更多详细信息,请参见词汇表
verbose int, default=0
详细程度。
fit_params dict, default=None
传递给估计器fit方法的参数。
pre_dispatch int or str, default=’2*n_jobs’
控制在并行执行期间分派的CPU内核数。当调度的CPU内核数量超过CPU的处理能力时,减少此数量可能有助于避免内存消耗激增。该参数可以是:

- None,在这种情况下,所有CPU内核都将立即创建并产生,使它进行轻量级和快速运行的任务,以避免因按需生成作业而造成延迟
-int,给出所产生的总CPU内核数的确切数量
-str,根据n_jobs给出表达式,如'2*n_jobs'
error_score ‘raise’ or numeric, default=np.nan
估计器拟合出现错误时,分配给分数的值。如果设置为“ raise”,则会引发错误。如果给出数值,则引发FitFailedWarning。此参数不会影响重新拟合步骤,这将总是引发错误。

0.20版中的新功能。
返回值 说明
scores array of float, shape=(len(list(cv)),)
每次交叉验证运行时估算器得分的数组。

另见:

sklearn.model_selection.cross_validate 在多个指标上进行交叉验证,并返回训练集准确率、拟合时间和评分时间。

sklearn.model_selection.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.33150734 0.08022311 0.03531764]