K折交叉验证的原理

https://www.jianshu.com/p/284581d9b189

模型评估

当使用十折交叉验证时,每次训练集为90%的数据,测试集为10%的数据。用这10%数据,我们可以计算出衡量误差的指标(例如RMSE),并且,我们还能得到10组对应测试集的预测值。接下来我们需要用这些数据做两件事情:

  1. 计算10个RMSE值的均值和标准差。K折交叉验证使用的是数据的随机部分,所以每次得到的误差值不应该变化太大。如果误差的标准差过大,说明我们的模型(和特征,超参数等)无法在测试集中获得稳定的预测结果。

  2. 将10组预测值合并为一组。例如,如果你有1000个样本点,那么使用10折交叉验证(每次使用1000/10=100个作为测试集),你会得到10组预测值,其中每组100个值,一共10*100=1000个预测值。将它们合并为一个向量后,你就得到了1000个预测值,而且它们是一一对应原始的1000个样本点的,我们把这组预测值称为oof(out-of-folds)预测值。使用oof与整个训练集(1000个样本点)的类标号列(常称为train_y),我们就可以对于整个数据集计算RMSE,使用该结果来作为模型评估的指标

代码实现

挖坑待填

参考资料

https://stats.stackexchange.com/questions/161491/how-to-evaluate-the-final-model-after-k-fold-cross-validation

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐