首页 > 解决方案 > K-fold CV 的变体,其中 size(test_set) > N/K

问题描述

我有一个二元分类问题,标签 0 和 1(少数)存在巨大的不平衡。因为测试集标签为 1 的行太少,所以我将 train-test 设置为至少 70-30 或 60-40,所以仍然有显着的观察结果。因为我没有在准确度上测量太多(由于类不平衡),而是更多地在精确召回上,这尤其重要,因为真阳性的一些差异是显着的。

Python / sklearn中是否有KFold(或交叉验证方法)的变体,我选择K = 5,并将拆分设置为60-40?就像下图一样:

在此处输入图像描述

标签: pythonmachine-learningscikit-learncross-validation

解决方案


您需要分层抽样来处理不平衡。这是 sklearn 为您执行此操作的 URL:组合 Kfold 和 Stratified sampling/split

http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html


推荐阅读