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

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

Stratified cross validation和一般cross validation有什么区别?

 

Alfred   2017-04-08 12:17



   1个回答 
6

对于常规的k-fold CV,每个fold都是从训练集随机抽出来。

对于stratified k-fold CV,每个fold都是按照类别的比例抽出来的。


比如这个分类任务一共有三个类别A、B、C,它们的比例是1:2:10。那么每个fold中的A、B、C的比例也必须是1:2:10。

stratified k-fold CV实现起来也很容易。先把A类别的数据随机分成k组,再把B类数据分成k组,然后C类分成k组,最后再把它们合并起来,就得到了k组满足1:2:10的数据了。

stratified cross validation是优于一般的cross validation的。因为test set能充分代表整体数据,此外CV出来的k个预测结果的方差也会变小,使得cv error更可靠。

对于非平衡分类,stratified CV的优点就更加明显了。如果二元分类中分类A只占有0.01%,分类B占有99.99%,当你使用常规的CV的时候,可能你的训练集里甚至都没有足够的A来训练,或者测试集里A的数量极少,严重影响了验证结果的可靠性。


红魔鲁尼   2017-04-13 11:20

学习了!还从没有用过stratified cv - bigbear   2017-04-14 23:24


  相关主题

十折交叉验证   1回答

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

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

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

交叉验证是如何进行的?   1回答

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

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

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

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

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

precision-recall曲线下面积有什么意义?   3回答

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



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

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

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

我们谢绝答非所问。

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

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