一、集成学习
二、Boosting模型
下一个子学习器,在当前学习器的基础上生成。最后,通过结合策略,将子学习器间的输出结合起来。
训练样本有权值,每次得到一个新的分类器后,会更新训练集中样本的权值。
参考刘建平–集成学习https://www.cnblogs.com/pinard/p/6131423.html
2.1 AdaBoost
摘自李航《统计学习方法》
2.1.1 AdaBoost算法
- 误差率
e m = P ( G m ( x i ) ≠ y i ) = Σ w m , i I ( G m ( x i ) ≠ y i ) ) e_{m}=P(G_{m}(x_{i})\neq y_{i})=\Sigma w_{m,i}I(G_{m}(x_{i})\neq y_{i})) em=P(Gm(xi)=yi)=Σwm,iI(Gm(xi)=yi)) -
G
m
(
x
)
G_{m}(x)
Gm(x)系数
α m = 1 2 l o g 1 − e m e m \alpha_{m}=\frac{1}{2}log\frac{1-e_{m}}{e_{m}} αm=21logem1−em - 样本更新后的权值
w m , i = w m , i Z m i e x p ( − α m y i G m ( x i ) ) w_{m,i}=\frac{w_{m,i}}{Z{m}{i}}exp(-\alpha_{m}y_{i}G_{m}(x_{i})) wm,i=Zmiwm,iexp(−αmyiGm(xi)) - 分类器
f ( x ) = Σ m α m f m ( x ) f(x) = \Sigma_{m}\alpha_{m}f_{m}(x) f(x)=Σmαmfm(x)
G ( x ) = s i g n ( f ( x ) ) G(x)=sign(f(x)) G(x)=sign(f(x))
2.1.2 AdaBoost算法误差分析
2.2 提升树算法
提升方法实际采用加法模型(基函数的线性组合)和前向算法。
2.3 梯度提升树(Gradient Boosting Decision Tree)算法
上面的提升树是对于误差函数取MSE时的构建方法,当损失函数是一般函数时,每次拟合的不是残差,而是拟残差。(提升树中的残差其实也是损失函数对函数f(x)梯度的负方向)
2.4 XGBoost
三、Bagging模型
从m个样本训练集中有放回地随机采样m次得到采样集1,训练学习器1,重复n次采样和训练,得到n个弱学习器,通过结合策略结合n个子学习器间的输出。
四、结合策略
- 投票法
- 加权
- stacking