交叉验证是如何进行的?

  统计/机器学习 模型验证    浏览次数: 3405
6

交叉验证是如何进行的?k-fold交叉验证的这个k又是什么意思,起了什么作用?

 

水煮鱼   2017-03-17 10:26



   1个回答 
9

Cross Validation(交叉验证)的思想是充分利用训练集来验证模型的精度。

一般来说,交叉验证会特地说明是用的多少fold。中文一般翻译为折。

一个k-fold cross validation是把训练集随机的分成等数量的k份,每一份数据集轮流当验证集,剩下的k-1的数据集当训练集。因为一共有k个数据集,所以我们就有可以验证k次。我们把这k次的预测精度的平均值当作模型的预测精度。

下图就是一个4-fold cross validation。我们先把数据随机分成四等份(如果不能被k整除,我们就大概近似k等份)。


下面进行交叉验证。首先是把第1个数据集当作测试集,用2,3,4当作训练集来训练模型,再用训练好的模型来预测数据集1,对比其真实值,得到了一个预测精度。然后再把数据集2当作测试集,用1,3,4训练出一个新的模型,在数据集2上测试,又得到一个预测精度。依此类推,我们就可以得到4个预测精度。将它们取平均值,就得到了模型的4-fold cross validation的预测精度。


蓝色北方   2017-03-18 12:48

通俗易懂 - 杨业勇   2017-03-27 12:54


  相关主题

k-fold cross validation的k怎么选   2回答

如何在保持查全率不变的情况下提高查准率?   1回答

如果我用交叉验证,还是否需要单独分出测试集?   1回答

Stratified k-fold cross validation(分层交叉验证)   1回答

回归问题中的stratified cross validation?   2回答

测试集和验证集的区别?   4回答

micro和macro F1 score分别是什么意思?   2回答

十折交叉验证   1回答

python里怎么计算一个数组的熵(entropy)?   1回答

python里怎么求多元分类的F1 score?   1回答

什么是混淆矩阵(confusion matrix)   2回答

利用交叉验证调参后还需要用完整的数据集重新训练吗?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!