KFold
model_selection.KFold(n_splits=5, *, shuffle=False, random_state=None)
提供训练/测试指标用于分割在训练/测试集中的数据
将数据分为n_splits份(默认不打乱顺序),其中一份作为交叉验证数据集,剩余(n_splits-1)份作为训练数据集
该类是一个交叉校验器
一般使用格式
常与cross_val_score()函数一起使用来求模型的评分
cross_val_score
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)
通过交叉验证来评估出一个分数
主要参数
x
array-like
要拟合的数据
y
array-like
监督学习时使用,表示标签
cv
交叉验证生成器(如kfold类)或可迭代类型
默认:5-fold
n_jobs
并行处理的任务数量
训练模型计算得分与交叉数据集分割同时进行
默认None:即1
-1表示使用所有处理器
返回值
数据类型:ndarray
模型为每个交叉验证数据集所估计的分数,比如我们使用kfold将数据集分为10份,除了1份用来验证模型的准确性外,其余的9份都会作为训练数据集参与估分
一般使用格式
kfold=KFold(n_splits=10)
cv_result=cross_val_score(model,x,y,cv=kfold) # model表示模型,x,y分别表示数据集及其标签
cross_val_score()函数的意义:假设我们现在有一个数据集,我们需要将其分为训练集和测试集,但是这样分一次后得到的数据集合具有随机性,这就会导致每次分割得到的数据集不一样,模型训练后得到的分数也不一样,会影响我们的判断。
于是我们使用这样的一个方法,多次随机分配训练数据集和交数据集,然后求得模型准确性评分的平均值
上面代码中cross_val_score()函数总共计算10次不同数据集和交叉数据集组合得到的模型准确行评分