下面关于adaboost的内容部分参考李航老师的《统计学习方法》
输入:训练数据集\(T = \{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\}\),其中\(X\)为实例空间,\(Y \in \{-1, +1\}\)为标签集合。
输出:最终的分类器\(G(x)\)
Adaboost算法流程:
1、初始化训练数据的权值分布:
$$u_n^{(1)} = (u_1^{(1)}, u_2^{(1)}, ..., u_N^{(1)}) = (\frac{1}{N}, \frac{1}{N}, ..., \frac{1}{N}),其中右上角的(1)表示第一次迭代$$
2、迭代直到收敛:
(1)、根据训练集\(T\)和权值分布\(u_n^{(t)}\)训练出弱分类器\(g_t(x)\);
(2)、根据训练集\(T\)、权值分布\(u_n^{(t)}\)和弱分类器\(g_t(x)\)求出\(\alpha_t\)和下一次迭代时使用的权值分布\(u_n^{(t+1)}\);
3、构建最终的分类器:
$$G(x) = sign(\sum_{n=1}^N \alpha_t g_t(x))$$
符号说明:算法中的上标或者下标\((t)\)表示第\(t\)次迭代,如果原字母没有下标,则\(t\)使用下标形式;如果原字母已经有了下标,则\(t\)使用带小括号的上标形式。
上面的算法中第1步和第3步不用说明。先看第2-(1)步,这一步就是训练弱分类器,具体的训练方式根据采用的弱分类器决定,比如采用决策桩作为弱分类器,那这一步就和回归树的训练类似。
为了对步骤2-(2