AutoML 技术文档
AutoML(Automated Machine Learning,自动机器学习)是自动化模型选择、特征工程与超参数优化的技术体系,在 A 股量化策略中用于快速搭建高性能预测模型,无需手动调参。
技术简介
AutoML 将以下流程自动化:
- 特征预处理:归一化、缺失值填充、编码
- 模型选择:从候选算法库(RF、XGBoost、LightGBM、线性模型等)中搜索最优
- 超参数优化(HPO):贝叶斯优化、Hyperband 等高效搜索策略
- 集成学习:将多个模型加权组合(Stacking/Voting)
主流框架:
| 框架 | 特点 | 官方链接 |
|---|---|---|
| auto-sklearn | 基于 scikit-learn,贝叶斯优化 + 集成 | auto-sklearn |
| FLAML | 微软出品,资源感知,速度极快 | FLAML |
| Optuna | 超参数优化框架,可与任意模型结合 | Optuna |
| H2O AutoML | 企业级,支持大规模分布式 | H2O.ai |
FLAML 论文:FLAML: A Fast and Lightweight AutoML Library — Wang et al., MLSys 2021
在 A 股量化策略中的应用
1. 快速因子挖掘 baseline
在新因子上线前,使用 AutoML 快速评估该因子的预测能力,作为是否值得深入研究的客观基准。避免依赖经验或手工调参导致的选择偏差。
2. 模型搜索替代人工调参
使用 FLAML 在 XGBoost/LightGBM/CatBoost 的参数空间上进行高效搜索,以 AUC 或 IC 值为目标函数,自动找到最优超参数组合:
python
import flaml
automl = flaml.AutoML()
automl.fit(
X_train, y_train,
task="classification",
metric="roc_auc",
time_budget=300 # 5 分钟内找最优模型
)
print(automl.best_estimator)
print(automl.best_config)3. 集成学习提升稳定性
auto-sklearn 和 H2O AutoML 天然支持模型集成(Ensemble),将 LightGBM、RandomForest、LogisticRegression 等多个弱模型自动加权组合,IC 稳定性显著高于单模型。
4. 时序交叉验证(重要!)
金融时序数据不能使用随机划分,必须使用 Walk-Forward 或自定义 CV 生成器:
python
from sklearn.model_selection import TimeSeriesSplit
cv = TimeSeriesSplit(n_splits=5)
automl.fit(X, y, eval_method="cv", split_type=cv)主要框架对比
| 特性 | auto-sklearn | FLAML | Optuna |
|---|---|---|---|
| 模型选择 | ✅ 自动 | ✅ 自动 | ❌ 手动选 |
| HPO 策略 | 贝叶斯 + 集成 | 资源感知 | TPE/CMA-ES |
| 速度 | 慢(资源多) | 最快 | 中等 |
| 集成输出 | ✅ | ✅ | ❌ |
| 时序 CV 支持 | 需自定义 | 需自定义 | 原生支持 |
性能特点
优势:
- 大幅减少调参工时,降低人为过拟合风险
- 系统化搜索通常比手工调参找到更优配置
- FLAML 在千股级别数据集上 5 分钟内可完成搜索
劣势:
- 时序数据需特别注意 CV 策略,框架默认往往不适合金融数据
- 搜索过程黑箱,不如手工调参容易控制过拟合方向
- 集成模型推理速度慢,不适合实时信号场景
