机器学习进阶文档深度页
GroupKFold 与分层分组验证
保证同一患者、用户或设备的全部记录只出现在训练侧或验证侧。
学习前需要掌握
交叉验证群组字段内容待补充
背景与问题
同一对象跨折会让模型通过身份特征认出验证记录,结果无法代表新对象。
概念定义
groups 标识相互依赖的样本集合;GroupKFold 以组为不可拆分单位。
直观理解
一个人的多次记录必须整组进入同一考场。
核心原理
分组隔离通常优先于简单分层。若同时关心类别比例,可用 StratifiedGroupKFold。
数学表达
核心表达
分组隔离通常优先于简单分层。若同时关心类别比例,可用 StratifiedGroupKFold。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1定义群组 ID
- 2检查每组样本数
- 3选 GroupKFold
- 4传 groups 参数
代码对应位置
示例 1GroupKFold 与分层分组验证 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
定义群组 ID
- 2
检查每组样本数
- 3
选 GroupKFold
- 4
传 groups 参数
- 5
验证无交集
- 6
报告组级分布
代码实现
示例 1
GroupKFold 与分层分组验证 示例
GroupKFold 与分层分组验证 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
cv=GroupKFold(n_splits=5)
r=cross_validate(model,X,y,groups=patient_ids,cv=cv)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
X- 完整特征矩阵,每行一个样本、每列一个特征。
y- 目标标签或连续目标值。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–2 行
数据边界和划分方式是代码含义的一部分。
cv=GroupKFold(n_splits=5)
r=cross_validate(model,X,y,groups=patient_ids,cv=cv)预期输出或运行结果
每折验证患者不出现在该折训练集。
常见错误 · 2 条
- 忘传 groups
- 按记录随机分层
实际应用
- 医疗
- 用户/设备多记录
常见错误
忘传 groups
按记录随机分层
文档来源
13|交叉验证:可靠评估与模型选择原始文档
学习资料/learning_tech/13_cross_validation.md- §7 分组数据:GroupKFold
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。