03 集成学习 - Boosting - AdaBoost算法原理
十、AdaBoost算法构建
上一章最后说明了每个基模型的权值α是如何求得的,于是我就可以对模型进行更新操作了。
构建过程一
1、假设数据集: T={(X1,Y1),(X2,Y2),...(Xn,Yn)}
2、初始化训练数据权重分布:
D1={w11,w12,...,w1i,...,w1n},w1i = 1/n , i=1,2,3,...,n;
(初始化的样本等权分配,有n个样本,每个样本的权重就是1/n)
D1 - 第一个样本集。
w12 - 第1个样本集中的第2个样本。
3、使用具有权值分布Dm的训练数据集学习,得到基本分类器:
Gm(x):x → {-1,+1}
分类器得到的结果不是-1就是+1。
4、计算__Gm(x)__在训练集上的分类误差:
5、计算__Gm(x)__的权值系数αm:
第5步完成后,会将样本的权重进行改变,回到第1步构建D2。
总结:反复执行a~e步骤,迭代生成新的学习器。
a、更新样本权重。
b、建立"某种"基模型。
c、计算当前模型(train set)的误分率。
d、计算基模型的权值。
e、更新样本的权重,形成新的样本集。
求解顺序: D1→G1→ξ1→α1→D2....
构建过程二
6、新训练数据集的权重分布
解决问题:新的样本集的样本权重如何分配。
从下图中可以看到,从第二轮开始,样本权重不再是均分的了。
Dm+1 代表的是权重构成的向量。右边是它的计算公式。
公式分析:
wm,i 是上一轮迭代中该样本的权重。
e-αyG(x) 是上一轮迭代中的损失值。(类似损失)
7、上面公式中的 Zm 是规范化因子(归一化)
8、构建基分类器的线性组合
求解顺序: D1→G1→ξ1→α1→D2....
9、得到最终分类器
至此,完成了整个AdaBoost的构建过程。
核心求解步骤再次强调: D1→G1→ξ1→α1→D2 ....
总结和回顾 AdaBoost和bagging算法的区别:
bagging算法不会改变原始数据集当中的数据取值,但是boosting算法会根据基模型建立的结果,通过某种方法,改变数据集的样子,来建立下一个基模型。
1、改变样本的权重。
2、改变模型权值。
改变以上两种权值,等价于改变了原始数据集的数据取值。