Ensemble Learning
Ensemble Learning
Intro - What is Ensemble Learning?
- Train multiple models.
- Predict with all trained models.
- Combine predictions to make a final prediction.
Bias-Variance Tradeoff
| 指标 | 定义 | 现象 | 原因 |
|---|---|---|---|
| Bias (偏差) | 欠拟合 | 模型过于简单 | |
| Variance (方差) | 过拟合 | 模型过于复杂 |
Common Ensemble Methods
Stacking (堆叠泛化)
- Level 0 model: 用原始数据分别训练多个模型
- Level 1 model: 用Level 0的预测结果作为数据集,再训练一个模型
Bootstrapping (自助采样)
对原始数据集进行有放回的采样,生成size相同的新数据集
eg. 原始数据集[A, B, C, D, D, G],采样后的数据集可能包括[A, A, B, D, D, G], [C, D, D, G, G, G] blabla...
Bagging (Bootstrap Aggregating)
- 用Bootstrapping生成多个数据集
- 用每个数据集训练一个模型
- 最后将多个模型的预测结果进行
平均(Regression)或投票(Classification),以综合
-> 降低过拟合风险
Random Forest
- 用Bootstapping生成
1个数据集
- 未出现在自举数据集中的样本,被称为Out-of-Bag样本,可用于评估树的精度
- 用数据集和随机选择的 个特征 (共有 个特征) 生成一棵决策树
- 重复1和2,生成多棵树,组成森林
- 最后取所有树的预测结果进行
平均(Regression)或投票(Classification),以综合
Boosting
- 用原始数据集训练一个模型,得到预测结果
- 根据模型的表现,调整样本的权重 - 对预测错误的样本加大权重
- 用调整后的数据集训练下一个模型
- 重复1-3,生成多个模型
- 最后将多个模型的预测结果进行
加权平均(Regression)或加权投票(Classification),以综合
- 表现好的模型权重更大
AdaBoost
- 训练一个stump (树桩:只有根和两个叶子,即一个决策的树)
- 根据树桩的表现:
- 基于性能加权树桩的投票
- 根据模型的表现,调整样本的权重 - 对预测错误的样本加大权重
- 归一化样本权重之和为1
- 用调整后的数据集训练下一个stump
- 重复1-3,生成多个stump
- 预测,加权,综合