"该用传统 ML 还是深度学习?"没有绝对答案。但有一套清晰的决策框架——取决于数据量、任务类型、可解释性、算力预算四个维度。
| 数据规模 | 推荐 | 原因 |
|---|---|---|
| < 1000 条 | 传统 ML | DL 容易过拟合 |
| 1000-10000 条 | 传统 ML 为主 | DL 可用迁移学习补充 |
| 10000-10万 条 | 两者均可 | 取决于其他维度 |
| > 10万 条 | DL 优势显现 | 数据越多 DL 优势越大 |
| > 100万 条 | DL 碾压 | 传统 ML 吃不下这个量级 |
| 任务 | 推荐 | 原因 |
|---|---|---|
| 表格数据(行列) | 传统 ML | XGBoost 在表格数据上至今 SOTA |
| 图像分类/检测 | DL | CNN/ViT 远超传统 CV 特征 |
| NLP(自然语言) | DL | BERT 之后 NLP 已被 DL 统一 |
| 时间序列预测 | 传统 ML 或轻量 DL | XGBoost 在时序中仍很强 |
| 异常检测 / 风控 | 传统 ML | 需可解释 + 小样本异常 |
| 场景 | 要求 | 推荐 |
|---|---|---|
| 医疗诊断 | 必须解释 | 传统 ML |
| 金融风控 | 需要解释 | 传统 ML(监管要求) |
| 内容推荐 | 不重要 | DL |
| 自动驾驶 | 极度重要 | 混合(感知 DL,规划规则) |
| 预算 | 推荐 |
|---|---|
| 笔记本 CPU | 传统 ML |
| 单 GPU | 中小 DL |
| 多 GPU / 集群 | 大模型 |
| 云端 API | 不训练只调用 |
┌─────────────────────┐
│ 你的数据长什么样? │
└──────────┬──────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
表格数据 图像/视频 文本
│ │ │
▼ │ │
┌─────────────┐ │ │
│ 数据 < 1000?│ │ │
└──┬───────┬──┘ │ │
│ │ │ │
▼ ▼ │ │
是 否 │ │
│ │ │ │
▼ ▼ ▼ ▼
逻辑回归 XGBoost/ 【深度学习】 【深度学习】
决策树 LightGBM CNN / ViT Transformer
【传统 ML 优势区】 【DL 优势区】
100万行表格数据,50个特征,0.1% 是欺诈。监管要求必须解释。
50万张图片,1000个类目。不需要解释,有 GPU 服务器。
3000 个用户,15个特征。想解释哪些因素导致流失,笔记本跑。
10000对问答 + 产品文档。不需要解释,可调用 API。
第1步:用最简单的模型做 baseline(逻辑回归 / 决策树)
↓ "这给我一个底线,知道什么叫'好'"
第2步:如果效果不够,升级到集成方法(随机森林 / XGBoost)
↓ "覆盖大部分表格数据场景"
第3步:还不够?分析原因
├── 数据太少?→ 收集更多或数据增强
├── 特征不够好?→ 特征工程
├── 有空间/序列结构?→ 考虑 DL
└── 模型太简单?→ 考虑 DL
这个决策框架的核心就一句话:没有免费的午餐。
你想让模型准确 → 需要更多数据/算力,这是 DL 的路。
你想让模型能解释 → 接受可能的性能损失,这是传统 ML 的路。
工程决策永远是权衡,不是选"最好"的,而是选"最合适"的。