集成学习
- 个体学习器
- 同质:基学习器,基学习算法
- 异质:组件学习器
- 准确性,多样性
- 学习器结合可能带来的好处
- 统计:学习任务假设空间大,多个假设在训练集上达到同等性能,使用单学习器可能因误选而导致泛化性能不佳
- 计算:降低陷入糟糕局部极小点的风险
- 表示:某些学习任务的真实假设可能不在当前算法所考虑的假设空间中,使用多学习器可能学得较好的近似
序列化方法
- Boosting
- Train a weak learner $h_t$ from distribution $D_t$
- Evaluate the error $\epsilon_t$ of $h_t$
- $D_{t+1}=\text{Adjust_Distribution}(D_t,\epsilon_t)$
AdaBoost
- 加性模型(additive model): $H(x)=\sum_{t=1}^T\alpha_th_t(x)$
- exponential loss funciton: $l_{exp}(H|D)=E_{x\sim D}(e^{-f(x)H(x)})$
- 指数损失函数最小化,分类错误率也将最小化(与 0/1 损失函数一致)
- 分类器权重更新公式: $\alpha_t=\frac{1}{2}\ln\frac{1-\epsilon_t}{\epsilon_t}$
- 调整样本分布: $D_{t+1}(x)=\frac{D_t(x)e^{-\alpha_tf(x)h_t(x)}}{Z_t}$
并行化方法
Bagging
- 采样 $T$ 次,训练 $T$ 个学习器,分类简单投票,回归简单平均
- out-of-bag estimate: $H^{oob}(x)$ 为未使用 $x$ 训练的基学习器在 $x$ 上的预测
- $H^{oob}(x)=\arg_{y\in Y}\max\sum_{t=1}^T[h_t(x)=y][x\not\in D_t]$
- $\epsilon^{oob}=\frac{1}{|D|}\sum_{(x,y)\in D}[H^{oob}(x)\not=y]$
随机森林
- Bagging + 在随机选择的 $k$ 个属性中选择最优属性
- 推荐值 $k=\log_2d$
结合策略
平均法
- 简单平均法: $H(x)=\frac{1}{T}\sum_{i=1}^Th_i(x)$
- 加权平均法: $H(x)=\frac{1}{T}\sum_{i=1}^Tw_ih_i(x)$
投票法
- 绝对多数投票法
- 可能拒绝预测
- 相对多数投票法
- 加权投票法
- $h(x)$ 输出不同
- hard voting: 类标记投票
- soft voting: 类概率投票
- 基学习器类型不同,其概率值不能直接进行比较
学习法
- Stacking
- 初级学习器(个体学习器)
- 次级学习器(元学习器)
- BMA(贝叶斯模型平均)
多样性
误差-分歧分解
- $E=\overline{E}-\overline{A}$
- $h_i$ 的分歧:$A(h_i|x)=(h_i(x)-H(x))^2$
- 集成的分歧:$\overline{A}(h|x)=\sum_{i=1}^T\omega_iA(h_i|x))$
- $E(h_i|x)=(f(x)-h_i(x))^2$
- $\overline{E}(h|x)=\sum_{i=1}^T\omega_iE(h_i|x)$
多样性度量
- 预测结果列联表(contingency table), $m=a+b+c+d$
$h_i=+1$ | $h_i=-1$ | |
---|---|---|
$h_j=+1$ | a | c |
$h_j=-1$ | b | d |
指标 | |
---|---|
不合度量(disagreement measure) | $\text{dis}_{ij}=\frac{b+c}{m}$ |
相关系数 | $\rho_{ij}=\frac{ad-bc}{\sqrt{(a+b)(a+c)(c+d)(b+d)}}$ |
$Q$-statistic | $Q_{ij}=\frac{ad-bc}{ad+bc}$ |
$\kappa$-statistic | $\kappa=\frac{p_1-p_2}{1-p_2}$ |
$\kappa$ 图 | $\kappa$-平均误差图 |
- 取得一致的概率:$p_1=\frac{a+d}{m}$
- 偶然取得一致的概率:$p_2=\frac{(a+b)(a+c)+(c+d)(b+d)}{m^2}$
多样性增强
- 数据样本扰动
- Bootstrap
- 对不稳定基学习器(决策树,神经网络)有效
- 输入属性扰动
- random subspace 算法
- 输出表示扰动
- Flipping Output
- Output Smearing
- ECOC
- 算法参数扰动
- 负相关法
- 不同增强机制同时使用