AdaBoost
- 初始化训练数据权重相等,假如有N个样本,每个样本被赋予相同的权值1/N,这时样本的权值分布为D1:
- 选择一个误差率最小的弱分类器作为个基分类器
- 计算基分类器的错误率
- 根据基分类器的错误率计算基分类器的投票权重
- 更新样本权重分布得到新的权重D2
- 循环执行2到5步m次
- 对m个学习器进行加权投票,获取最终分类器
举例如下:
数据集共有10条数据,根据x的输入得到的y可以分类两类,即y=1与y=-1。我们每一轮使用最简单的决策树来构造基分类器,也就是每轮设定一个阈值θ,只要x<θx<θ,就判定为正类(y=1),x>θx>θ就判定为负类(y=-1)。
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
y | 1 | 1 | 1 | -1 | -1 | -1 | 1 | 1 | 1 | -1 |
- 第一步: 初始化训练数据权重相等
D1=(0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1) - 第二步: 选择一个误差率最小的弱分类器作为第一个基分类器
取θ为0.5,1.5,2.5,…,8.5来对x进行分类,有两种分类方法:
x<θ时分为正类,x>θ时分为负类,分类错误率对应 ϵt1
x>θ时分为正类,x<θ时分为负类,分类错误率对应ϵt2 经过计算得:
错误率 | 0.5 | 1.5 | 2.5 | 3.5 | 4.5 | 5.5 | 6.5 | 7.5 | 8.5 |
---|---|---|---|---|---|---|---|---|---|
ϵt1 | 0.5 | 0.4 | 0.3 | 0.5 | 0.5 | 0.6 | 0.5 | 0.4 | 0.3 |
ϵt2 | 0.5 | 0.6 | 0.7 | 0.6 | 0.5 | 0.4 | 0.5 | 0.6 | 0.7 |
最终要选择一个令 ϵt1 ϵt2取得最小值的θ与分类方法
在权值分布为D1的训练数据上,从上述计算可知阈值v取2.5时分类误差率最低,故基本分类器为:
-
第三步 :计算基分类器的错误率
该学习器在训练数据中的错误率ϵt=0.3 -
第四步 :根据基分类器的错误率计算基分类器的投票权重
计算公式为:
计算结果为α1=0.4236 -
第五步 :更新样本权重分布得到新的权重D2
计算公式为:
Zt为归一化系数,将权重缩放到0到1 之间
经计算得:
D2=(0.07143,0.07143,0.07143,0.07143,0.07143,0.07143,0.16667,0.16667,0.16667,0.07143) -
第六步 :循环执行2到5步
第二轮计算的:
α2=0.6496
D3=(0.0455,0.0455,0.0455,0.1667,0.1667,0.1667,0.1060,0.1060,0.1060,0.0455)
H2(x)=sign[0.4236h1(x)+0.6496h2)第三轮计算的:
α3=0.7514
D4 =(0.125,0.125,0.125,0.102,0.102,0.102,0.065,0.065,0.065,0.125)H3(x)=sign[0.4236h1(x)+0.6496h2+0.7514h3(x))
第七步: 对m个学习器进行加权投票,获取最终分类器
H3(x)=sign[0.4236h1(x)+0.6496h2(x)+0.7514h3(x))