python - K-fold CV 的变体,其中 size(test_set) > N/K
问题描述
我有一个二元分类问题,标签 0 和 1(少数)存在巨大的不平衡。因为测试集标签为 1 的行太少,所以我将 train-test 设置为至少 70-30 或 60-40,所以仍然有显着的观察结果。因为我没有在准确度上测量太多(由于类不平衡),而是更多地在精确召回上,这尤其重要,因为真阳性的一些差异是显着的。
Python / sklearn中是否有KFold(或交叉验证方法)的变体,我选择K = 5,并将拆分设置为60-40?就像下图一样:
解决方案
您需要分层抽样来处理不平衡。这是 sklearn 为您执行此操作的 URL:组合 Kfold 和 Stratified sampling/split
http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html
推荐阅读
- node.js - 将 Google 表格连接到 Node JS 时出错
- java - java StringIndexOutOfBoundsException: -1
- sql-server - 如何从 SQL Server 数据库中保存存档
- r - 搜索和使用数据库
- html - Bootstrap - 防止 div 由于更大的文本而扩展
- html - `\n` 不在内部创建新行
标签
- vbscript - 有没有办法从命令行在 EA 中运行 VbScript?
- excel - 合并多个单元格的文本
- reactjs - 为什么我在下面的代码中将 ID 的值设为未定义?反应
- ios - iOS:UICollectionView 的辅助功能无法正常工作