python - 在 python 中训练测试拆分但考虑患者信息?
问题描述
我想知道是否有一种简单的方法可以在 python 中进行训练测试拆分(主要对交叉验证感兴趣),这样我最终不会在训练和测试中得到来自同一患者的数据点?也就是说,我想首先将患者分成训练和测试,然后相应地进行观察。
是否有这种场景的功能,还是我必须手动编码?
解决方案
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)
推荐阅读
- mysql - 如何在sql中将日期格式从YYYY-MM-DD转换为YYYY-MM
- c# - 使用 JavaScript 动态添加表单控件并在 ASP.Net Core 中处理表单
- javascript - setTimeout 在登录页面上不起作用客户端
- python - 如果用户输入任何内容,则循环列表继续
- string - SQLite csv 导入问题值 inf.0
- flutter - 如何在Appbar颤动上重叠项目
- sequelize.js - 如何在 sequelize 中深度嵌套数据?
- c++ - wxWidgets - 单击按钮时隐藏/显示 `boxsizer` 的内容
- python - 使 Python 模块可供所有 Linux 用户使用
- reactjs - Typescript 4.0 中的 SCSS 接口