在python中训练测试拆分但考虑患者信息?

时间:2021-03-10 13:57:31

标签: python machine-learning scikit-learn cross-validation train-test-split

我想知道是否有一种简单的方法可以在 python 中进行训练测试拆分(主要对交叉验证感兴趣),这样我就不会在训练和测试中得到来自同一患者的数据点?也就是说,我想首先将患者分成训练和测试,然后相应地观察。

是否有适用于这种场景的功能,还是我必须手动编码?

1 个答案:

答案 0 :(得分:0)

Sklearn GroupKFold 应该解决这个任务。具有非重叠组的 K 折迭代器变体。同一组不会出现在两个不同的折叠中:

from sklearn.model_selection import GroupKFold

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([1, 2, 3, 4])
groups = np.array([0, 0, 2, 2])
group_kfold = GroupKFold(n_splits=2)

group_kfold.get_n_splits(X, y, groups)
相关问题