机器学习进阶文档深度页
交叉验证
K 折让每条训练部分样本轮流验证,报告平均分和折间波动,并保留最终测试集。
学习前需要掌握
背景与问题
一次划分可能碰巧容易或困难,导致算法排序不稳定。
概念定义
第 k 折用其余 K-1 折训练,本折验证;交叉验证用于模型选择,不替代最终测试。
直观理解
进行多轮模拟考试,而不是只凭一次成绩。
核心原理
划分器必须匹配分类、群组和时间结构;所有预处理都在当前训练折内 fit。
数学表达
核心表达
划分器必须匹配分类、群组和时间结构;所有预处理都在当前训练折内 fit。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1保留测试集
- 2选择划分器
- 3固定折
- 4折内 Pipeline fit
代码对应位置
示例 1交叉验证 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
保留测试集
- 2
选择划分器
- 3
固定折
- 4
折内 Pipeline fit
- 5
收集每折指标
- 6
报告均值/标准差
代码实现
示例 1
交叉验证 示例
交叉验证 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
cv=StratifiedKFold(5,shuffle=True,random_state=42)
r=cross_validate(model,X_train,y_train,cv=cv,scoring=["accuracy","f1_macro"])代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
X_train- 训练特征,只允许它参与预处理器和模型的 fit。
y_train- 与 X_train 对齐的训练目标。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–2 行
数据边界和划分方式是代码含义的一部分。
cv=StratifiedKFold(5,shuffle=True,random_state=42)
r=cross_validate(model,X_train,y_train,cv=cv,scoring=["accuracy","f1_macro"])预期输出或运行结果
5 个 accuracy 与 macro F1 验证分数。
常见错误 · 4 条
- 替代最终测试
- 预处理在 CV 前
- 只看最高折
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 模型比较
- 超参数选择
常见错误
替代最终测试
预处理在 CV 前
只看最高折
文档来源
13|交叉验证:可靠评估与模型选择原始文档
学习资料/learning_tech/13_cross_validation.md- §1 为什么需要交叉验证
- §2 训练/验证/测试
- §17 如何报告
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。