回归过程
adaboost的核心就是求当前分类器的权重,和更新样本的误差。
样本的权重是根据当前分类器的误差率来计算的,当前模型的误差率通过如下方法来计算:
1. 计算训练集上的最大误差
Ek=max∣yi−Gk(xi)∣i=1,2…m E_{k}=\max \left|y_{i}-G_{k}\left(x_{i}\right)\right| i=1,2 \ldots m Ek=max∣yi−Gk(xi)∣i=1,2…m
2. 计算每个样本的相对误差
相对误差的计算方法与误差的计算方法有关,比如平方误差:
eki=(yi−Gk(xi))2Ek2
e_{k i}=\frac{\left(y_{i}-G_{k}\left(x_{i}\right)\right)^{2}}{E_{k}^{2}}
eki=Ek2(yi−Gk(xi))2
3.计算当前学习器的误差率
ek=∑i=1mwkieki e_{k}=\sum_{i=1}^{m} w_{k i} e_{k i} ek=i=1∑mwkieki
4. 计算当前学习器的权重
没有取ln
αk=ek1−ek
\alpha_{k}=\frac{e_{k}}{1-e_{k}}
αk=1−ekek
5.更新样本的权重
wk+1,i=wkiZkαk1−eki
w_{k+1, i}=\frac{w_{k i}}{Z_{k}} \alpha_{k}^{1-e_{k i}}
wk+1,i=Zkwkiαk1−eki
其中
Zk=∑i=1mwkiαk1−eki
Z_{k}=\sum_{i=1}^{m} w_{k i} \alpha_{k}^{1-e_{k i}}
Zk=i=1∑mwkiαk1−eki
6.最终的集成学习器
f(x)=∑m=1M(ln1αm)g(x) f(x)=\sum_{m=1}^{M}\left(\ln \frac{1}{\alpha_{m}}\right) g(x) f(x)=m=1∑M(lnαm1)g(x)
7.正则化
引入步长的概念,优点像梯度下降中的学习率,将每一轮的集成学习器
fk(x)=fk−1(x)+αkGk(x)
f_{k}(x)=f_{k-1}(x)+\alpha_{k} G_{k}(x)
fk(x)=fk−1(x)+αkGk(x)
改为
fk(x)=fk−1(x)+ναkGk(x)
f_{k}(x)=f_{k-1}(x)+\nu \alpha_{k} G_{k}(x)
fk(x)=fk−1(x)+ναkGk(x)
即从当前学习器中学习到较少的东西,这也意味着需要更多的迭代次数