Skip to content

AutoML 技术文档

AutoML(Automated Machine Learning,自动机器学习)是自动化模型选择、特征工程与超参数优化的技术体系,在 A 股量化策略中用于快速搭建高性能预测模型,无需手动调参。


技术简介

AutoML 将以下流程自动化:

  1. 特征预处理:归一化、缺失值填充、编码
  2. 模型选择:从候选算法库(RF、XGBoost、LightGBM、线性模型等)中搜索最优
  3. 超参数优化(HPO):贝叶斯优化、Hyperband 等高效搜索策略
  4. 集成学习:将多个模型加权组合(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-sklearnFLAMLOptuna
模型选择✅ 自动✅ 自动❌ 手动选
HPO 策略贝叶斯 + 集成资源感知TPE/CMA-ES
速度慢(资源多)最快中等
集成输出
时序 CV 支持需自定义需自定义原生支持

性能特点

优势:

  • 大幅减少调参工时,降低人为过拟合风险
  • 系统化搜索通常比手工调参找到更优配置
  • FLAML 在千股级别数据集上 5 分钟内可完成搜索

劣势:

  • 时序数据需特别注意 CV 策略,框架默认往往不适合金融数据
  • 搜索过程黑箱,不如手工调参容易控制过拟合方向
  • 集成模型推理速度慢,不适合实时信号场景

官方参考资料

⚡ Real-time Data · 📊 Smart Analysis · 🎯 Backtesting