adaboost属于一种提升方法,提升方法基于这样的一种想法:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家的判断要好。提升方法就是将弱学习算法提升为强学习方法的一种手段,其中比较著名的算法是adaboost算法。
adaboost算法描述如下:
输入:训练数据集T = {(x1, y1), (x2, y2), ..., (xn, yn)},其中 xi∈X⊆Rn,yi∈ Y = {-1, +1},弱学习算法;
输出:最终分类器G(x).
(1) 初始化训练数据的权值分布
D1 = (w11, ..., w1i,w1n), w1i = 1/n, i = 1, 2, ..., n
(2) 对 m = 1,2,3,...,M有
for m in [1,2,...,M]:
a) 使用具有权值的分布的Di的训练数据集学习,得到基本分类器
Gm(x):X -> {-1, +1}
b) 计算Gi(x)在训练数据集上的分类误差率
em = P(Gm(xi) != yi) = ∑wmi*I(Gm(xi) != yi)
c) 计算G