Bagging - Booststrap AGGrgratING
- bagging时训练n个并行独立的模型
- 做决策时如果是回归就把输出平均,分类就投票
- 每个学习器通过bootstrap采样数据训练
- 假设m个训练样本,随机选择其中m个样本放回,有些样本会重复,有些没拿到
- 大概是1-1/e约等于63%的样本每次都会被采样到,剩下的就作为验证集
Bagging Code
1 | class Bagging: |
Random Forest
- 假设使用决策树作为基础的学习器
- 经常从每个学习器中采样子集特征,比如30%列,能避免一定的过拟合,增加每棵树之间的差异性
Unstable Learners
-
Bagging减少了方差,特别是对于不稳定的学习器
-
为了简单我们假设回归的情况,给定基本事实 f 和基本学习器 h,bagging:$\hat{f}(x)=E[h(x)]$
-
给定 $(E[x])^2\le E[x^2]$,方差=平方的期望-期望的平方,所以我们有
$$
(f(x)-\hat{f}(x))^2\le E[(f(x)-h(x))^2]\Leftrightarrow (E[h(x)])^2\le E[h(x)^2]
$$
Bagging在当基础学习器不稳定时减少了更多的方差
Summary
- Bagging训练多个学习器时通过bootstrap采样,放回采样
- Bagging减少了方差,特别是对于不稳定的学习器