提升方法
主要针对分类问题,通过改变训练样本的权重,学习多个分类器,将这些分类器进行线性组合提升分类的性能
提升方法AdaBoost算法
1、基本思路
强可学习:一个概念(类),如果存在一个多项式的算法能够学习它,并且正确率很高,则称这个概念是强可学习的
弱可学习:一个概念(类),如果存在一个多项式的算法能够学习它,但正确率仅比随机猜测略好,则称这个概念是弱可学习的
一个定理:在PAC(概率近似正确)学习框架下,一个概念强可学习的充要条件是这个概念是弱可学习的。
提升方法首先学习出一系列的弱分类器,然后将一系列弱分类器进行组合,构成一个强分类器。其有两个问题需要解决:一是如何改变训练数据的权重或概率分布,二是如何进行组合。
2、AdaBoost算法
算法步骤:
(1)初始化训练数据的权值分布:
(2)对
使用具有权值分布
的训练数据集进行学习,得到基本分类器:
(a)计算
在训练数据集上的分类误差率:
(b)计算
的系数:
(c)更新训练数据集的权重分布:
这里,
是规范化因子
(3)构建基本分类器的线性组合
最终,分类误差较大的分类器在以后的学习中,所占的权重越来越大,有助于学习出正确分类的分类器,同时,正确率较高的分类器在最终的结果中的作用越来越大。
训练误差分析
定理:AdaBoost算法最终分类器的训练误差界为:
二类分类问题的训练误差界:
这里
推论:如果存在
,对所有的
有
,则:
这表明在此条件下,此算法的训练误差以指数速率下降
AdaBoost算法的另一种解释
认为AdaBoost算法是模型为加法模型,损失函数为指数函数,学习算法为前向分步算法时的二类分类学习方法
1、前向分步算法
定义:考虑加法模型:
其中,
是基函数,
是基函数的参数,
为基函数的系数。
在给定训练数据以及损失函数
的条件下,学习加法模型转变成以下求损失函数极小化问题:
前向分步算法优化此类问题的想法是:从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式。具体的,每步只优化如下损失函数:
2、前向分步算法与AdaBoost
有1可知,AdaBoost算法其实是前向分步算法的特例,模型是由基本的分类器组成的加法模型,损失函数是指数函数。