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)[源代码]#
通过交叉验证评估分数。
阅读更多的 User Guide .
- 参数:
- estimator实现“fit”的估计器对象
用于适应数据的对象。
- X形状(n_samples,n_features)的{类数组,稀疏矩阵}
要适应的数据。例如,可以是列表或数组。
- y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无
在监督学习的情况下尝试预测的目标变量。
- groups形状类似数组(n_samples,),默认=无
Group labels for the samples used while splitting the dataset into train/test set. Only used in conjunction with a "Group" cv instance (e.g.,
GroupKFold
).在 1.4 版本发生变更:
groups
只能在未通过启用元数据路由时传递sklearn.set_config(enable_metadata_routing=True)
.启用路由后,通过groups
与其他元数据一起,params
相反,争论。例如:cross_val_score(..., params={'groups': groups})
.- scoring字符串或可调用,默认=无
字符串(请参阅 的 scoring 参数:定义模型评估规则 )或具有签名的记分器可调用对象/函数
scorer(estimator, X, y)
它应该只返回一个值。类似于
cross_validate
但仅允许单个度量。如果
None
,使用估计器的默认评分器(如果可用)。- cvint,交叉验证生成器或可迭代对象,默认=无
确定交叉验证拆分策略。简历的可能输入包括:
None
,要使用默认的5重交叉验证,int,指定中的折叠数
(Stratified)KFold
,生成(训练、测试)的迭代对象拆分为索引数组。
为
int
/“无”输入,如果估计器是分类器并且y
是二元或多类,StratifiedKFold
采用了在所有其他情况下,KFold
采用了这些拆分器实例化为shuffle=False
因此不同呼叫之间的拆分将是相同的。指 User Guide 这里可以使用的各种交叉验证策略。
在 0.22 版本发生变更:
cv
默认值,如果None
从3倍变成5倍。- n_jobsint,默认=无
要并行运行的作业数。训练估计器和计算分数在交叉验证拆分上并行进行。
None
意思是1,除非在a中joblib.parallel_backend
上下文-1
意味着使用所有处理器。看到 Glossary 了解更多详细信息。- verboseint,默认=0
冗长程度。
- paramsdict,默认=无
传递给基础估计器的参数
fit
、记分员和简历分配器。Added in version 1.4.
- pre_dispatchint或url,默认=' 2 *n_jobs '
控制并行执行期间调度的作业数量。减少此数量对于避免当调度的作业数量超过中央处理能力时内存消耗的爆炸式增长非常有用。此参数可以是:
None
,在这种情况下,所有的工作都将立即创建并产生。将其用于轻量级且快速运行的作业,以避免因作业按需生成而导致的延迟int,给出产生的工作总数的确切数量
一个字符串,给出作为n_jobs函数的一个表达,如“2*n_jobs”中
- error_score“raise”或数字,默认=NP.nan
如果估计量匹配中出现错误,则指定给分数的值。如果设置为“raise”,则会引发错误。如果给出了数字值,则会引发FitUtiledWarning。
Added in version 0.20.
- 返回:
- scores形状浮动的nd数组=(len(list(cv)),)
每次交叉验证运行的估计量得分数组。
参见
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]