一、定义
1、介绍
Adaboost(Adaptive Boosting自适应提升算法)算法是一种常用的集成学习算法,解决的是二分
类问题,它可以将多个弱分类器(比如决策树)组合成一个强分类器。其基本思想是通过对数据集
进行加权和重复训练来提高分类器的准确性。
2、自适应
AdaBoost的自适应在于前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的
权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类
器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。
通俗地讲就是,将若干带有权值的弱分类器累加得到强分类器的过程。
二、数学表达式
三、思路
1、在每一轮如何改变训练数据的权值或概率分布?
在每一轮中,分别记录好那些被【当前弱分类器】【正确分类】与【错误分类】的【样本】,在下
一轮训练时,提高【错误分类样本】的权值,同时降低【正确分类样本】的权值,用以训练新的弱
分类器,这样一来,那些没有得到正确分类的数据,由于其权值加大,会受到后一轮的弱分类的更
大关注。
样本权值:可以理解为某个样本在训练集中所占的比例是多少。
2、如何将弱分类器组合成一个强分类器?---加权多数表决
(1)加大【分类误差率小】的弱分类器的权值,使其在表决中起较大的作用。
(2)减小【分类误差率大】的弱分类器的权值,使其在表决中起较小的作用。
四、算法流程
1、初始化/更新当前训练数据的权重分布
(1)第一次训练需要初始化样本的权重
将训练样本的权重初始化为相等的值,如果有N个样本,则每⼀个训练样本最开始时都被赋予相同的权值:1/N。Dm=(1/N, 1/N, 1/N ... 1/N)
(2)非第一次训练样本权重更新方式
因为基分类器的结果不是-1,就是1,因此可以简化为如下公式:
2、训练当前基分类器Gm(x)
(1)计算当前Gm(x)在训练数据集上的分类误差率em
在训练集的x中划分出各候选阈值,找到使误差率em最小的阈值,构建本轮Gm(x)。
(2)使用具有权值分布Dm的训练数据集学习,得到Gm(x)。
3、计算当前基分类器的权重αm
(1)计算当前Gm(x)在训练数据集上的分类误差率em
(2)根据分类误差率em,计算基分类器Gm(x)的权重系数
4、将αmGm(x)更新到加法模型中
5、判断是否满足循环退出条件
(1)分类器个数是否达到M
(2)总分类器误差率是否低于设定的精度 sign[f(x)]
例题讲解:给定以下训练样本,并用Adaboost算法进行学习训练学习。