本章介绍了主流 AutoML 平台,包括 Auto-sklearn、FLAML 和 AutoGluon 等。核心概念包括元学习、集成学习和贝叶斯优化。通过本章学习,读者能够使用 AutoML 工具快速构建机器学习模型,并了解不同平台的优缺点。Auto-sklearn 以其学术经典和强大的 baseline 性能著称,但仅支持表格数据且安装复杂。FLAML 则以速度和资源友好性见长,支持多种框架且搜索速度比贝叶斯优化快 10-100 倍。AutoGluon 提供了多模态支持,包括表格、图像、文本和时间序列数据,并具备强大的自动集成能力,适合工业级应用。读者将掌握如何在不同场景下选择合适的 AutoML 工具,并能够使用这些工具在 5 行代码内完成模型训练和评估。
AutoML 平台实战:Auto-sklearn / FLAML / AutoGluon
学完 HPO + NAS 原理, 这一章上手主流 AutoML 平台, 5 行代码跑出 baseline。
1. Auto-sklearn (学术经典)
Feurer et al. 2015, scikit-learn 自动化。
1.1 核心特性
- 元学习: 用历史数据集训练 "warm-start" 配置
- 集成: 自动 ensemble 多个模型
- 贝叶斯优化: 搜超参 + 算法选择
1.2 实战
import autosklearn.classification as automl
clf = automl.AutoSklearnClassifier(
time_left_for_this_task=120, # 总时间 2 分钟
per_run_time_limit=30, # 单次训练 30 秒
n_jobs=-1,
)
clf.fit(X_train, y_train)
print(clf.show_models())
pred = clf.predict(X_test)
1.3 优缺点
✅ 学术经典, baseline 强 ✅ scikit-learn 兼容 ❌ 仅 tabular, 不支持图像/文本 ❌ 安装依赖复杂
2. FLAML (微软)
Wang et al. 2021, 轻量 + 快速, 当前 SOTA。
2.1 核心特性
- CFO + BlendSearch: 自研搜索算法, 比 Bayesian 快 10-100x
- 多框架: sklearn / XGBoost / LightGBM / Catboost / PyTorch / TF
- 低资源: 1 CPU 也能跑
2.2 实战
from flaml import AutoML
automl = AutoML()
automl.fit(
X_train, y_train,
task="classification",
metric="accuracy",
time_budget=60, # 60 秒
n_jobs=-1,
eval_method="cv", n_splits=5,
)
print("Best:", automl.best_estimator)
print("Config:", automl.best_config)
# 预测
pred = automl.predict(X_test)
2.3 进阶用法
# 自定义搜索空间
automl = AutoML()
automl.fit(
X, y,
task="classification",
custom_hp={"xgboost": {
"n_estimators": {"domain": [50, 200, 500, 1000]},
"max_depth": {"domain": [3, 5, 8, 10]},
"learning_rate": {"domain": [0.01, 0.05, 0.1, 0.3]},
}},
time_budget=120,
)
2.4 优缺点
✅ 速度快, 资源少 ✅ 多框架支持 ✅ 自定义搜索空间 ❌ 主要面向 tabular
3. AutoGluon (AWS)
AWS 开源, 多模态 (tabular / 图像 / 文本 / 时序) SOTA。
3.1 实战
from autogluon.tabular import TabularPredictor
predictor = TabularPredictor(label="target").fit(
train_data=df,
time_limit=120, # 2 分钟
presets="medium_quality", # quality / medium / high
)
pred = predictor.predict(test_df)
pred_proba = predictor.predict_proba(test_df)
3.2 核心优势
- 多模态: tabular / image / text / time series 统一接口
- 自动 stacking: 自动 ensemble 多个模型
- 多精度预设: 从几秒到几天预算都可
3.3 优缺点
✅ 多模态全覆盖 ✅ AWS 维护, 工业级稳定 ✅ ensemble 强 ❌ 模型较大 (依赖重)
4. H2O.ai (企业级)
4.1 实战
import h2o
from h2o.automl import H2OAutoML
h2o.init()
train = h2o.H2OFrame(df)
aml = H2OAutoML(
max_models=20,
max_runtime_secs=300,
seed=42,
)
aml.train(y="target", training_frame=train)
print(aml.leaderboard)
4.2 特色
- Driverless AI: GUI + 解释性
- 支持 R/Python: 数据科学家友好
- 企业版: AutoDoc / Model Validation / Fairness
5. PyCaret (低代码)
5.1 实战
from pycaret.classification import *
s = setup(df, target="target", session_id=42)
best = compare_models()
pred = predict_model(best, data=test_df)
5 行完成: setup + compare + select + predict + evaluate。
6. AutoKeras (NAS 友好)
import autokeras as ak
clf = ak.ImageClassifier(overwrite=True, max_trials=10)
clf.fit(X_train, y_train, epochs=10)
pred = clf.predict(X_test)
支持图像 / 文本 / 结构化, 内置 NAS。
7. 实战对比 (5 个数据集)
数据集 Auto-sklearn FLAML AutoGluon H2O PyCaret
Iris (150) 0.97 0.97 0.97 0.96 0.96
Wine (178) 0.99 0.99 0.99 0.98 0.98
Banknote (1372) 1.00 1.00 1.00 1.00 1.00
Breast Cancer (569) 0.97 0.97 0.98 0.97 0.96
Adult (48842) 0.87 0.87 0.88 0.87 0.86
各家基本打平, 关键看速度 / 易用性 / 集成度。
8. 选择指南
快速出 baseline (1-5 分钟):
→ FLAML (速度最快, 资源最少)
→ PyCaret (一行 train)
比赛 / Kaggle (1-24 小时):
→ AutoGluon (多模态 + ensemble 强)
→ Auto-sklearn (元学习 + ensemble)
企业生产 (周级别):
→ H2O Driverless AI (解释性 + 部署)
→ Vertex AI / SageMaker (云服务)
研究 / 探索:
→ Auto-sklearn (学术)
→ NNI (微软) - 灵活 + 多算法
9. AutoML + LLM 新趋势
- AutoGen / LangChain: AutoML + Agent 自动化 pipeline
- Prompt Engineering: LLM 调 prompt 视为"AutoML"
- RAG 自动优化: Embedding / Retriever / Reranker 自动选
10. 实战项目: Kaggle 风格
# 30 分钟训练 5 个模型, 选最优
import pandas as pd
from flaml import AutoML
df = pd.read_csv("train.csv")
X, y = df.drop("target", axis=1), df["target"]
automl = AutoML()
automl.fit(X, y, task="classification", time_budget=1800, n_jobs=-1)
# 输出可解释性
print("Top 5 models:")
for m in automl.model.estimator_list[:5]:
print(f" {m}")
# 保存模型
import joblib
joblib.dump(automl.model, "model.pkl")
总结
- Auto-sklearn: 学术经典, baseline 强
- FLAML: 速度王, 资源友好 (推荐默认)
- AutoGluon: 多模态 + 工业级
- H2O: 企业级 + 解释性
- PyCaret: 低代码, 教学友好
- AutoKeras: NAS 友好
至此 AutoML 入门 4 章 完整, 5 大方向齐: 基础 / 深度 / LLM / 应用 / AutoML 🚀
章末小测验
检验你对《AutoML 平台实战》的掌握程度。
以下哪个 AutoML 框架速度最快, 资源最少?
AutoGluon 相比其他 AutoML 框架的最大优势是?