疑问:对于交叉验证法,如5折交叉验证,那么将会生成5个模型,到底应该选择哪个模型作为最终的模型呢?
解答:通过阅读博文,发现交叉验证法是用来评估模型性能的,并不参与最后预测模型的生成。
知识点总结:
一、交叉验证法是用于小数据集的。大数据集可直接使用train-validation-test。
在研究对比不同算法的泛化性能时,使用测试集来评估,而把训练数据划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
使用train-validation-test的过程:
- 将数据集划分为training set,validation set,testing set;
- 对不同的3个算法svm,random forest,logistic regression,分别执行以下三步,得到其最优模型。
- 对于一个算法,如svm,针对不同的核参数,在training set上训练模型;
- 在validation set上评估不同核参数对应模型的结果,选择出最优的核参数;
- 对该最优核参数,重新使用training set+validation set进行训练,得到最终的模型;
3. 在testing set上对这三个不同算法的性能进行评估,用来估计模型在实际使用时的泛化能力。
二、交叉验证法是用于选择超参数的。如svm中核函数的参数选择,tuning parameter时,使用交叉验证法的平均评估结果来验证哪个参数最好。
机器学习训练时主要需要学两样东西。
一样是模型weights,比如coefficients and biases.
另外一样是模型的超参数,比如学习率,regularisation strength什么的。
cross validation 主要是为了找到最好的超参数。然后用最好的超参数训练模型,得到最终的模型weights.
作者:Softmax
链接:https://www.zhihu.com/question/39259296/answer/460169275
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
使用交叉验证进行tuning parameter的过程总结:
- 将全部数据集划分为training set和 testing set;
- 对不同算法,进行tuning parameter:
- 对不同超参数,使用training set,进行5折交叉验证,得到评估结果;
- 选择评估结果最好的那个超参数作为最优超参数;
- 对最优超参数,重新使用training set训练模型;
3.使用testing set评估不同算法的泛化能力。
三、若非要纠结使用交叉验证的哪个模型比较好,一般选择使用误差最小的那个模型作为最终模型。(不常用)(这点不确定理解的是不是正确)
声明:
本博文通过参考以下博文而得出:
https://www.zhihu.com/question/39259296
https://www.cnblogs.com/WayneZeng/p/7802759.html