【机器学习】分类器组合——AdaBoost

        AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

        AdaBoost其实只是boost的一个特例。

 

一、流程图


1. 要训练出多个弱分类器(图中为3个),每个弱分类器由不同权重的样本(图中为5个训练样本)训练得到(其中第一个弱分类器对应输入样本的权值是一样的),而每个弱分类器对最终分类结果的作用也不同,是通过加权平均输出的,训练过程如下.

2. 设每个样本训练维度为2(决策树只有2个选择属性),决策树选择其中一个属性。然后计算这个属性中的最佳值用来分类。


二、具体训练算法过程

1.训练第一个分类器(弱分类器单层决策树),样本的权值D为相同的权值,通过一个弱分类器得到这5个样本的分类预测标签、与给定的真实值对比,有

误差ε=未正确分类分类数/总样本数

如果某个样本预测错误,则它对应的错误值为该样本的权重,如果分类正确,则错误值为0. 最后累加5个样本的错误率之和,记为ε。


2. 通过ε来计算该弱分类器的权重α,公式如下:

3. 通过α来计算训练下一个弱分类器样本的权重D,如果对应样本分类正确,则减小该样本的权重,公式为:

  如果样本分类错误,则增加该样本的权重,公式为:


4. 循环步骤1,2,3来继续训练多个分类器,只是其D值不同而已。


三、测试过程

  输入一个样本到训练好的每个弱分类中,则每个弱分类都对应一个输出标签,然后该标签乘以对应的α,最后求和得到值的符号即为预测标签值。

 

四、性能

优点:

         1.低泛化误差,泛化错误率低,易编码,可以应用在大部分分类器上;

         2.容易实现,分类准确率较高,无参数调整;

缺点:

        对离群点outlier较敏感;


posted @ 2014-11-03 07:58  DianaCody  阅读(2309)  评论(0编辑  收藏  举报