文章目录
一、算法原理
1.算法的基本思想
Adaboost是adaptive boosting的简写,是自适应的boosting算法,基本思想为:在前一个弱分类器的基础上,增加误分类样本的权重,这些误分类的样本在下一个弱分类器那里被重点关注,依次迭代进行,直到到达预定的足够小的错误率或最大的迭代次数为止。大概流程描述如下:
- 初始化训练数据的权值分布,假设样本个数为 N N N,则每个样本的权值为 1 N \frac{1}{N} N1;
- 在初始训练集上训练出一个弱分类器,根据分类结果,被误分类的样本权重增加,正确分类的样本的权重将减少,然后将权值更新过的训练数据集用于训练下一个弱分类器,不断进行迭代。
- 将各个弱分类器进行组合形成强分类器。各个弱分类器也有自己的权重,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中有更大的决定权,同理,减少分类误差率高的弱分类器的权重,使其在最终的分类函数中起着较小的决定权。
2.算法的流程
假设一个二分类的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_{\scriptscriptstyle 1},y_{\scriptscriptstyle 1}),(x_{\scriptscriptstyle 2},y_{\scriptscriptstyle 2}),\cdots,(x_{\scriptscriptstyle N},y_{\scriptscriptstyle N})\} T={
(x1,y1),(x2,y2),⋯,(xN,yN)}
其中, x i ∈ χ ∈ R n x_{i}\in \chi \in R^{\scriptscriptstyle n} xi∈χ∈Rn,标记 y i ∈ { − 1 , 1 } y_{\scriptscriptstyle i}\in \{-1,1\} yi∈{
−1,1}。
(1)初始化训练数据集的权值分布
D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , ⋯   , N D_{\scriptscriptstyle 1}=(w_{\scriptscriptstyle 11},\cdots,w_{\scriptscriptstyle 1i},\cdots,w_{\scriptscriptstyle 1N}),\ w_{\scriptscriptstyle 1i}=\frac{1}{N},\ i=1,2,\cdots,N D1=(w11,⋯,w1i,⋯,w1N), w1i=N1, i=1,2,⋯,N
(2)训练每个弱分类器,假设有 M M M 个弱分类器,对于 m = 1 , 2 , ⋯   , M m=1,2,\cdots,M m=1,2,⋯,M
(a)使用具有权值分布的训练数据集学习,得到基本分类器
G m ( x ) : χ → { − 1 , 1 } G_{\scriptscriptstyle m}(x):\chi\to\{-1,1\} G