模型筛选流程
Step 1: 明确任务类型
- 预测目标是连续值? → 回归
- 预测目标是类别? → 分类
- 无标签数据,想找结构? → 无监督(聚类/降维)
- 策略决策?需要和环境交互? → 强化学习
- 生成数据(图像/文本/音频)? → 生成模型
Step 2: 看数据特征
1. 样本量:
- 少量(< 1k):SVM、高斯过程、KNN、树模型
- 中等(1k~100k):树模型、传统 ML、浅层 NN
- 大规模(> 100k):深度学习、大规模 Boosting
2. 特征类型:
- 全数值 → 线性/树/神经网络都可
- 类别型 → 树模型(RF/LightGBM/CatBoost)更好
- 文本 → 朴素贝叶斯、TF-IDF + 线性模型、Transformer
- 图像 → CNN / ViT
- 时序 → RNN/LSTM/GRU/Transformer
- 图数据 → GCN/GAT/GraphSAGE
3. 维度:
- 低维(<50):任意传统 ML
- 高维(>1000):L1 正则、PCA 降维、核方法、深度模型
Step 3: 考虑约束条件
- 可解释性重要 → 逻辑回归、决策树、线性模型、LIME/SHAP 可解释
- 训练速度要求高 → 线性模型、浅树、朴素贝叶斯
- 推理速度要求高 → 线性模型、树模型(浅深度)、蒸馏后的深度模型
- 精度优先 → 集成学习(XGBoost、LightGBM)、深度学习
- 内存/计算有限 → 简单模型、特征选择、量化模型
流程图
+--------------------+
| 明确问题类型 |
| (分类/回归/聚类等) |
+---------+----------+
|
v
+--------------+------------------+
| 数据结构与特征类型检查 |
| (是否为图像、文本、表格等) |
+--------------+------------------+
|
v
+---------------+----------------+
| 模型需求约束判断 |
| (速度、准确率、可解释性等) |
+---------------+----------------+
|
v
+-------------+-------------+
| 筛选候选模型列表 |
+-------------+-------------+
|
v
+-------------+-------------+
| 基准模型训练 & 验证 |
+-------------+-------------+
|
v
+-------------+-------------+
| 多模型比较 & 超参调整 |
+-------------+-------------+
|
v
+-------------+-------------+
| 最终模型评估 &部署 |
+---------------------------+