如何 'leave pair out' 每个测试对由 [0 1] 组成

How to 'leave pair out' where each test pair consists of [0 1]

我正在构建一个机器学习 classifier 并想使用 'leave pair out' 交叉验证,具有非重叠对,其中每一对包含一个来自否定 class 的实例一个来自正面,即每个测试集中的真实标签或 y 值折叠将是 [0 1].

我不知道如何在 Scikit 学习中实现这一点。我有 50 个实例(每个 class 有 25 个实例)所以我可以这样做:

split = KFold(n_splits=50 // 2, shuffle=True, random_state=42)

得到非重叠对,但这并没有给我 [0 1] 的测试集。我查看了 LeavePGroupsOut 的文档,但这似乎不是我想要的。

谁能指出我正确的方向?谢谢!

我相信你可能想要StratifiedKFold。这 class 在保持标签平衡的同时创建折叠;结合您当前使用 25 折的技术,应该可以解决问题。