🏠 总目录📚 本教程 17 · 模型调参与 AutoML
📑 本页目录(点开跳转)

模型调参与AutoML

25 分钟 | 🎁 优先级最低的一章


🎯 一句话

调参是竞赛里收益最小的一环——优先级是「赛题理解 > 数据分析 > 特征工程 > 模型选择 > 模型集成 > 调参」。这一章的真正价值不是教你搜出最优参数,而是让你知道什么时候该停止调参去干更有价值的事


一、调参在竞赛中的定位

维度 说明
调参时机 调参应放在最后阶段,不是首要步骤
优先级 赛题理解 > 数据分析 > 特征工程 > 模型选择 > 模型集成 > 调参
收益递减 随着比赛推进,每次尝试的精度收益逐渐减小,调参的收益通常最小
避免盲目 不是所有比赛都需要调参,有些比赛数据理解和特征工程就足够
验证集依赖 调参必须依赖验证集,验证集打分是调参的基础

二、人工调参

维度 说明
方法 人工给定几组超参数组合,分别训练后选择验证集精度最优的
人的作用 人负责选择初始超参数空间,以及根据结果决定下一步调整方向
优点 靠谱、资源消耗少、基于领域知识有针对性
知识要求 需要了解每个超参数如何影响模型(增加拟合能力还是减少过拟合)
适用场景 超参数数量少、搜索空间小、对模型有较深理解时

维度 说明
方法 对每个超参数给定离散取值,穷举所有组合进行搜索
搜索空间 若4个超参数各有3个取值,则需搜索3^4=81种组合
交叉验证 每组超参数需跑K折交叉验证,总训练次数 = 组合数 × K
优点 搜索均匀,不会遗漏任何组合
缺点 计算量大,81组 × 5折 = 405次训练
实现 sklearn的GridSearchCV可直接使用

维度 说明
方法 对每个超参数给定取值范围,从中随机采样组合
与网格搜索区别 粒度不同、随机性不同,搜索不如网格均匀
优点 可在更大范围内搜索,不受离散取值限制
缺点 可能遗漏最优组合,随机性导致结果不稳定
实现 sklearn的RandomizedSearchCV可直接使用

五、贝叶斯优化(Bayesian Optimization)

维度 说明
核心思想 在已知若干超参数-精度对应关系的基础上,建模预测下一个更优点可能的位置
建模过程 用已有数据点构建代理模型(如高斯过程),预估超参数空间与精度的关系曲线
搜索策略 不是盲目搜索,而是基于已有结果智能选择下一个搜索点
初始化 通常先随机初始化5个点作为已知点,然后迭代优化
优点 搜索空间比网格/随机搜索小,减少无效搜索
缺点 计算量仍较大,搜索空间大时仍需费很多时间
实现 bayesian-optimization库、Optuna等
连续值处理 贝叶斯优化搜索得到的是连续值,需转换为整数(如树深度、树数量)

六、LightGBM调参示例

维度 说明
关键超参数 学习率(learning_rate)、树深度(max_depth)、叶子节点数(num_leaves)、树数量(n_estimators)
LightGBM CV 使用lgb.cv可直接输出训练集AUC和5折AUC方差,方便评估
调参顺序 先调学习率和树数量,再调树深度和叶子节点数
学习率范围 通常0.01到0.1之间
树深度范围 通常3到8之间
叶子节点数 通常31到127之间,与树深度相关

七、随机种子(Seed)的作用

维度 说明
本质作用 固定随机性,确保实验可复现
对精度影响 对模型精度影响相对较小,不如学习率、Batch Size等参数影响大
调参建议 优先调整非Seed参数,Seed调优放在最后
多样性利用 不同Seed训练的模型可作为集成学习的多样性来源

八、AutoML工具

工具 特点 适用场景
Keras Tuner 深度学习模型的超参数搜索 深度学习
Optuna 通用超参数优化框架,支持多种搜索算法 轻量级搜索
AutoGluon 自动化机器学习,自动选择模型和调参 快速出结果
TPOT 基于遗传算法的AutoML工具 Pipeline搜索
NNI (Microsoft) 支持多种搜索算法,可视化 通用超参搜索

九、调参的注意事项

维度 说明
避免过拟合 在验证集上调参可能导致过拟合验证集,需在测试集上最终验证
时间成本 调参耗时较长,需权衡时间投入与精度收益
早停机制 使用Early Stopping可减少训练时间,自动找到最优迭代轮数
并行搜索 网格搜索和随机搜索可并行执行,加速搜索过程
记录管理 记录每次调参的超参数组合和对应精度,避免重复搜索

十、高级调参方法

Hyperband

维度 说明
核心思想 基于逐半淘汰(Successive Halving)的资源分配策略,快速淘汰差配置
工作方式 先用少量资源(如1个epoch)评估大量配置,保留表现好的,逐步增加资源
优势 比网格搜索和随机搜索快数倍,自动平衡探索与利用
参数 max_iter(最大资源)、eta(淘汰比例,通常3)
适用场景 训练成本高的深度学习模型

BOHB(Bayesian Optimization + Hyperband)

维度 说明
核心思想 结合贝叶斯优化和Hyperband,用贝叶斯模型指导Hyperband的采样
优势 兼具Hyperband的效率和贝叶斯优化的智能搜索
实现 HpBandSter库
适用场景 大规模超参搜索,搜索空间大时

ASHA(Asynchronous Successive Halving)

维度 说明
核心思想 Hyperband的异步版本,多组配置并行训练,异步淘汰
优势 比同步Hyperband资源利用率更高
实现 Ray Tune内置
适用场景 分布式训练环境

Population Based Training(PBT)

维度 说明
核心思想 维护一组模型种群,训练过程中差的模型从好的模型复制权重并变异超参
变异操作 学习率乘以0.8或1.2,dropout增减0.1等
优势 训练和调参同时进行,无需单独调参阶段
实现 Ray Tune / PBT实现
适用场景 长时间训练的模型,如强化学习

调参方法选择

场景 推荐方法 理由
快速实验 人工调参 基于经验快速定位
小搜索空间 网格搜索 确保不遗漏
大搜索空间 贝叶斯优化(Optuna) 智能搜索
训练成本高 Hyperband / BOHB 快速淘汰差配置
分布式环境 ASHA + Ray Tune 并行高效
长时间训练 PBT 训练调参一体化

🔗 这一章连到哪里

去哪为什么
ML基础 09 优化器与学习率学习率、batch size 这些超参到底在改什么
数学原理 08 偏差方差分解调参本质是在偏差和方差之间移动,知道往哪边推就不用瞎搜
ML基础 04 决策树与集成学习LightGBM 的叶子数、深度、采样率各自控制什么

✅ 检查点

  1. 网格搜索、随机搜索、贝叶斯优化三者的适用场景是什么?
  2. 为什么随机搜索在高维超参空间里常常优于网格搜索?
  3. LightGBM 的调参顺序应该是什么?
  4. 随机种子该不该调?它的正确用法是什么?
  5. 在验证集上调参会带来什么风险?怎么缓解?
  6. 什么信号说明你该停止调参了?
👀 答案
  1. 网格搜索:超参少(≤3 个)、每个取值离散且已知大致范围 → 搜得均匀不遗漏。随机搜索:超参多、范围大、不知道哪个更重要 → 能在更大空间里采样。贝叶斯优化:单次训练很贵、想用最少的次数找到好解 → 用代理模型智能选择下一个搜索点。
  2. 因为在实际问题里,只有少数几个超参真正重要。网格搜索会把预算平均分配给所有维度——如果 4 个超参各取 3 值,重要的那个超参也只被试了 3 个不同取值;而随机搜索同样 81 次试验,那个重要超参可能被试了 81 个不同取值
  3. ①先固定一个较小的 learning_rate(0.01~0.05)并用早停确定 n_estimators ②再调控制复杂度的(num_leaves / max_depth / min_child_samples)③再调采样类(subsample / colsample_bytree)④最后调正则(reg_alpha / reg_lambda)。⭐ 关键是learning_rate 和 n_estimators 要一起看——前者调小后者就要调大,用早停自动确定最省事。
  4. 不该把它当超参来「调优」——在验证集上挑一个「运气好」的种子,是最典型的过拟合验证集。正确用法有两个:①固定它保证实验可复现把不同种子的模型当成融合的多样性来源(多种子平均,而不是挑最好的那个)。
  5. 过拟合验证集:你试了 200 组参数,选出的那组在验证集上最好,但这个「最好」有一部分来自运气。缓解:①用交叉验证而不是单次划分限制搜索次数留一个从头到尾没碰过的测试集做最终确认看提升有没有超过种子间的波动幅度
  6. 连续几十次尝试的提升都在噪声范围内(比种子间的波动还小)②验证集分数在涨但 LB 不涨(说明在过拟合验证集)③你还没做特征工程或模型融合——那两处的收益通常大得多。⭐ 第三条最常见:很多人在还有大块低垂果实时就一头扎进了调参。

🛑 可以停在这里

走神救援
调参是竞赛里收益最小的一环:优先级是赛题理解 > 数据分析 > 特征工程 > 模型选择 > 模型集成 > 调参。三种搜索:网格(超参少、范围已知)、随机(超参多、范围大)、贝叶斯(单次训练贵、要用最少次数)。⭐随机搜索在高维常优于网格,因为实际只有少数超参真正重要——同样 81 次,网格让重要超参只试了 3 个值,随机让它试了 81 个。LightGBM 调参顺序:先定小 learning_rate + 早停确定 n_estimators → 复杂度类(num_leaves/max_depth/min_child_samples)→ 采样类 → 正则类。⚠️随机种子不该当超参调(在验证集上挑「运气好」的种子是典型的过拟合),正确用法是固定它保证可复现多种子当融合的多样性来源(平均而非挑最好)。⭐三个该停止调参的信号:提升落在噪声范围内、验证涨但 LB 不涨(在过拟合验证集)、你还没做特征工程或融合——第三条最常见。

打卡记录保存在你的浏览器里,首页能看到总进度