机器学习进阶文档深度页
KFold、StratifiedKFold 与重复交叉验证
回归常用 KFold,分类用分层折保持类别比例,重复 CV 检查随机划分敏感性。
学习前需要掌握
背景与问题
少数类样本太少时折数不能超过可支持数量;折数越多计算越贵且不必然更稳。
概念定义
KFold 不保证类别比例;StratifiedKFold 近似保持 y 分布;RepeatedStratifiedKFold 使用多组随机折。
直观理解
普通分组只均分人数,分层分组还尽量让每组类别配比相似。
核心原理
5/10 折是常见起点,最终由数据量、少数类和计算成本决定。
数学表达
核心表达
5/10 折是常见起点,最终由数据量、少数类和计算成本决定。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1识别任务类型
- 2检查最少类别数
- 3选折数
- 4决定 shuffle/seed
代码对应位置
示例 1KFold、StratifiedKFold 与重复交叉验证 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
识别任务类型
- 2
检查最少类别数
- 3
选折数
- 4
决定 shuffle/seed
- 5
必要时重复
- 6
报告所有分数
代码实现
示例 1
KFold、StratifiedKFold 与重复交叉验证 示例
KFold、StratifiedKFold 与重复交叉验证 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
cv=RepeatedStratifiedKFold(n_splits=5,n_repeats=3,random_state=42)
scores=cross_val_score(model,X,y,cv=cv,scoring="f1_macro")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
X- 完整特征矩阵,每行一个样本、每列一个特征。
y- 目标标签或连续目标值。
model- 组合预处理和估计器的模型对象。
scores- 交叉验证各折的评价分数。
Step 1 · 1–2 行
数据边界和划分方式是代码含义的一部分。
cv=RepeatedStratifiedKFold(n_splits=5,n_repeats=3,random_state=42)
scores=cross_val_score(model,X,y,cv=cv,scoring="f1_macro")预期输出或运行结果
15 个验证分数及其平均和波动。
常见错误 · 3 条
- 少数类少于折数
- 折数越多越好
- 只挑最好种子
实际应用
- 普通分类回归
常见错误
少数类少于折数
折数越多越好
只挑最好种子
文档来源
13|交叉验证:可靠评估与模型选择原始文档
学习资料/learning_tech/13_cross_validation.md- §3 KFold
- §4 StratifiedKFold
- §5 折数
- §6 重复交叉验证
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。