Boosting

提升方法(Boosting)是一种常用的统计学习方法,应用广泛且且有效,在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能

提升方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好

AdaBoost算法
假设给定一个二分类的训练数据集\(T={(x_1,y_1),\cdots,(x_N,y_N)}\),其中\(x_i\in \chi \subseteq R^n\),标记\(y_i \in\){-1,1},AdaBoost利用以下算法,从训练数据中学习一系列弱分类器或基本分类器,并将这些若分类器线性组合成为一个强分类器

输入:训练数据集T;弱学习算法
输出:最终分类器G(x)
(1)初始化训练数据的权值分布
\(D_1=(w_{11},\cdots,w_{1N}),W_{1i}=\frac{1}{N}\)

(2)对\(m=1,2,\cdots,M\)
(a)使用具有权值分布\(D_m\)的训练数据集学习,得到基本分类器\(G_m(x):\chi \to\) {-1,1}
(b)计算\(G_m(x)\)在训练数据集上的分类误差率
\(e_m=P(G_m(x_i)\neq y_i)=\sum_{i=1}^N w_{mi}I(G_m(x_i)\neq y_i)\)
(c)计算\(G_m(x)\)的系数\(\alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m}\)
(d)更新训练数据集的权值分布
\(D_{m+1}=(w_{m+1,1},\cdots,w_{m+1,N}),\\ w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_m y_i G_m(x_i))(错分的权重增加,在下一轮学习中起更大的作用,不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用,这是AdaBoost的一个特点)\)
这里,\(Z_m\)是规范化因子,\(Z_m=\sum w_{mi}exp(-\alpha_m y_i G_m(x_i))\)

(3)构建基本分类器的线性组合\(f(x)=\sum_{m=1}^M\alpha_mG_m(x)\)
得到最终分类器\(G(x) = sign(f(x)) = sign(f(x))=sign(\sum_{m=1}^M\alpha_mG_m(x))\)

提升树
提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法。
提升树是以分类树或回归树为基本分类器的提升方法,提升树被认为是统计学习中最有效的方法之一。提升数模型可以表示为决策树的加法模型:
\(f_M(x) = \sum T(x;\Theta_m)\),其中,\(T(x;\Theta_m)\)表示决策树,\(\Theta_m\)为决策树的参数;M为树的个数

posted @ 2018-01-04 17:14  blog_hfg  阅读(339)  评论(0)    收藏  举报