统计学习 Adaboost
【基本原理】
将多个弱分类器进行组合,组成一个强分类器;
弱分类器:通常指代单层决策树,也就是决策树最简单的模型,只有一个特征判断点,选择一维特征来进行分类
如二维坐标点中选取X=2为划分点,X>2为+1类 X<2为-1类
一个强分类器由多个弱分类器迭代训练组合而成,每一次只训练一个弱分类器,之前训练好的分类器参与下一次分类,也就是第N次迭代将训练第N个弱分类器,而前面的N-1个弱分类器均已训练完成,参数不再改变,第N个分类器重点对之前分类错误的数据进行偏重训练。分类器训练过程如下:
【权重】
Adaboost算法中包含两大类权重。
数据权重 | 寻找其分类误差最小的决策点,也就是弱分类器重点需要分类正确的数据重要性描述。 |
弱分类器权重 | 表明在最终强分类器中该弱分类器对于分类起的作用大小 |
数据权重:用于描述数据集各部分的重要性差异,一种典型的情况,数据集的某部分在第N次训练时权重为0.1 但该轮分类中这部分数据分类正确率很低,那么增大权重到0.5 那么第N+1个弱分类器将重点使得上一次分类失败的数据分类正确,否则由于权重大,分类失败的损失将很大。
弱分类器权重:由于每次迭代后会计算弱分类器的正确率,正确率越高,那么权重越大,在最终强分类器中的决定权越大。
第N次迭代训练主要内容:
- 增加一个弱分类器Classifier(N)以及分类器权重Alpha(N)
- 根据数据权重对数据集进行训练,获得弱分类器Classifier(N)和权重Alpha(N)参数,并计算该弱分类器错误率
- 结合各个弱分类器分类结果,得出最终分类结果,与分类错误率,当小于给定要求时候,迭代结束。
【加权表决计算】
针对一个样本,不同弱分类器有不同的结果,最终的分类结果将根据各个弱分类器的权重进行计算。
以一维分类为例,主要包含三个弱分类器:
- 弱分类器1 权重为0.5 当X<-1时,数据得分为 0.5 ;当X>-1时,数据得分-0.5
- 弱分类器2 权重为0.3 当X< 1时,数据得分为-0.3 ;当X> 1时,数据得分 0.3
- 弱分类器3 权重为0.2 当X< 3时,数据得分为 0.2 ;当X> 3时,数据得分-0.2
那么针对一个一维数据,可以有四块组合分类情况:
- 当 X<-1时,得分:0.5+(-0.3)+(0.2)=0.4>0 那么最终分为+1类
- 当-1<X< 1时,得分:-0.5+(-0.3)+(0.2)=-0.7<0 那么最终分为-1类
- 当 1<X<3时,得分:-0.5+0.3+0.2=0>0 那么最终分为+1类
- 当 3<X时,得分:-0.5+0.3+(-0.2)=-0.4<0 那么最终分为-1类