K折交叉验证的原理
见 https://www.jianshu.com/p/284581d9b189
模型评估
当使用十折交叉验证时,每次训练集为90%的数据,测试集为10%的数据。用这10%数据,我们可以计算出衡量误差的指标(例如RMSE),并且,我们还能得到10组对应测试集的预测值。接下来我们需要用这些数据做两件事情:
-
计算10个RMSE值的均值和标准差。K折交叉验证使用的是数据的随机部分,所以每次得到的误差值不应该变化太大。如果误差的标准差过大,说明我们的模型(和特征,超参数等)无法在测试集中获得稳定的预测结果。
-
将10组预测值合并为一组。例如,如果你有1000个样本点,那么使用10折交叉验证(每次使用1000/10=100个作为测试集),你会得到10组预测值,其中每组100个值,一共10*100=1000个预测值。将它们合并为一个向量后,你就得到了1000个预测值,而且它们是一一对应原始的1000个样本点的,我们把这组预测值称为oof(out-of-folds)预测值。使用oof与整个训练集(1000个样本点)的类标号列(常称为train_y),我们就可以对于整个数据集计算RMSE,使用该结果来作为模型评估的指标
代码实现
挖坑待填
参考资料