AdaBoost算法是基于Boosting思想的机器学习算法,AdaBoost是adaptive boosting(自适应boosting)的缩写,其运行过程如下:
1) 计算样本权重
{(x1,y1),(x2,y2),...,(xn,yn)}
设定每个样本的权重都是相等的,即
1n
2) 计算错误率
利用第一个弱学习算法
h1
对其进行学习,学习完成后进行错误率ε的统计:
ε=为正确分类的样本数所有样本数目
3) 计算弱学习算法权重
弱学习算法也有一个权重,用向量
α
表示,利用错误率计算权重
α
:
α=12 ln(1−εε)
4) 更新样本权重
在第一次学习完成后,需要重新调整样本的权重,以使得在第一分类中被错分的样本的权重,在接下来的学习中可以重点对其进行学习:
Dt+1(i)=Dt(i)Zt∗{e−αtif ht(xi) = yie αtif ht(xi) ≠ yi
其中,
ht(xi)=yi
表示对第
i
个样本训练正确,不等于则表示分类错误。
Zt
是一个归一化因子:
Zt=sum(D)
这个公式我们可以继续化简,将两个公式进行合并,化简如下:
H(x)=sign(∑Tt=1αtht(x))
其中
sign(x)
是符号函数。
5) AdaBoost算法