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中的折叠数,一个可迭代对象,生成作为索引数组的 (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]