机器学习进阶文档深度页
嵌套交叉验证
内层选择超参数,外层估计整个选择流程的泛化,减少最佳 CV 分数的选择乐观。
学习前需要掌握
交叉验证网格搜索内容待补充
背景与问题
尝试很多参数后报告同一 CV 的最佳分数会有选择偏差;重要小数据任务可用嵌套 CV。
概念定义
每个外层训练集内部运行完整 GridSearchCV,再在外层验证折评价已选择配置。
直观理解
外层考察“学习加选参数”整套流程,内层才负责练习阶段挑方案。
核心原理
计算成本是外折×内折×候选数;外层验证不能用于内层早停或选择。
数学表达
核心表达
计算成本是外折×内折×候选数;外层验证不能用于内层早停或选择。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1定义内层 CV
- 2定义外层 CV
- 3创建 search estimator
- 4外层 cross_validate
代码对应位置
示例 1嵌套交叉验证 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
定义内层 CV
- 2
定义外层 CV
- 3
创建 search estimator
- 4
外层 cross_validate
- 5
报告外层分数
- 6
再训练最终方案
代码实现
示例 1
嵌套交叉验证 示例
嵌套交叉验证 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
inner=StratifiedKFold(4,shuffle=True,random_state=42)
outer=StratifiedKFold(5,shuffle=True,random_state=100)
search=GridSearchCV(pipeline,param_grid,cv=inner,scoring="roc_auc")
r=cross_validate(search,X,y,cv=outer,scoring="roc_auc")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
X- 完整特征矩阵,每行一个样本、每列一个特征。
y- 目标标签或连续目标值。
Step 1 · 1–4 行
数据边界和划分方式是代码含义的一部分。
inner=StratifiedKFold(4,shuffle=True,random_state=42)
outer=StratifiedKFold(5,shuffle=True,random_state=100)
search=GridSearchCV(pipeline,param_grid,cv=inner,scoring="roc_auc")
r=cross_validate(search,X,y,cv=outer,scoring="roc_auc")预期输出或运行结果
5 个外层 ROC-AUC,代表模型选择流程。
常见错误 · 3 条
- 计算次数低估
- 外层折参与调参
- 直接拿最终模型
实际应用
- 小样本严格比较
- 多参数选择
常见错误
计算次数低估
外层折参与调参
直接拿最终模型
文档来源
13|交叉验证:可靠评估与模型选择原始文档
学习资料/learning_tech/13_cross_validation.md- §13 嵌套交叉验证
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。