问题: K-fold划分数据进行训练有k个训练模型,那最终选取哪个模型?还有为什么要计算所有模型的平均误差?
- 这些验证的目的是为了调参,最终选取的模型是通过调好的参数在所有数据上训练得到的模型
- 我们进行k-fold是将数据划分为k折,每次取k-1的数据训练然后在剩下的一份验证打分,这样经过k轮后就得到一个模型的k个得分(注意“模型”只有一个,当你确定具体算法和参数组合以后就确定了模型,而模型拟合数据得到的是学习器(比如分类器,你可以理解为模型的具体实例)),那为什么要取平均呢,其实在前面说过单独取部分数据作为验证集来验证可能结果不稳定,不具代表性,所以我们做了k次验证,而且每次以k-1组数据训练、剩余一组验证就保证我们把原始的训练集都使用了一遍,每个数据都作为训练数据、测试数据被使用过,现在对这k个学习器的得分取个平均分来代表这个模型的表现就有说服力了,而对于其他模型(不同模型比如SVM和决策树或者统一模型的不同参数组合)分别进行k折交叉验证,每一个模型都得到各自学习器的平均得分,我们通过比较这些模型的平均得分就能知道最佳的一个模型是哪一个,最终就把这个模型(算法及参数组合)拿出来重新用全部训练集训练得到最后的学习器,然后对测试数据作出预测,整个过程大概是这样,注意区分“模型”与“学习器”,“参数”与“超参数”