统计学习方法笔记(十二)提升方法(一)

提升方法

主要针对分类问题,通过改变训练样本的权重,学习多个分类器,将这些分类器进行线性组合提升分类的性能

提升方法AdaBoost算法

1、基本思路
强可学习:一个概念(类),如果存在一个多项式的算法能够学习它,并且正确率很高,则称这个概念是强可学习的
弱可学习:一个概念(类),如果存在一个多项式的算法能够学习它,但正确率仅比随机猜测略好,则称这个概念是弱可学习的
一个定理:在PAC(概率近似正确)学习框架下,一个概念强可学习的充要条件是这个概念是弱可学习的。
提升方法首先学习出一系列的弱分类器,然后将一系列弱分类器进行组合,构成一个强分类器。其有两个问题需要解决:一是如何改变训练数据的权重或概率分布,二是如何进行组合。
2、AdaBoost算法
算法步骤:
(1)初始化训练数据的权值分布:
D 1 = ( w 11 , , w 1 i , , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , , N
(2)对 m = 1 , 2 , . . . , M 使用具有权值分布 D m 的训练数据集进行学习,得到基本分类器:
G m ( x ) : X { 1 , + 1 }
(a)计算 G m ( x ) 在训练数据集上的分类误差率:
e m = P ( G m ( x i ) y i ) = i = 1 N w m i I ( G m ( x i ) y i )
(b)计算 G m ( x ) 的系数:
α m = 1 2 log 1 e m e m
(c)更新训练数据集的权重分布:
D m + 1 = ( w m + 1 , 1 , , w m + 1 , i , , w m + 1 , N )
w m + 1 , i = w m i Z m exp ( α m y i G m ( x i ) ) , i = 1 , 2 , , N
这里, Z m 是规范化因子 Z m = i = 1 N w m i exp ( α m y i G m ( x i ) )
(3)构建基本分类器的线性组合
f ( x ) = m = 1 M α m G m ( x )
G ( x ) = s i g n ( f ( x ) ) = s i g n ( m = 1 M α m G m ( x ) )
最终,分类误差较大的分类器在以后的学习中,所占的权重越来越大,有助于学习出正确分类的分类器,同时,正确率较高的分类器在最终的结果中的作用越来越大。

训练误差分析

定理:AdaBoost算法最终分类器的训练误差界为:
1 N i = 1 N I ( G ( x i ) y i ) ) 1 N i exp ( y i f ( x i ) ) = m Z m
二类分类问题的训练误差界:
m M Z m = m = 1 M [ 2 e m ( 1 e m ) ] = m = 1 M ( 1 4 γ m 2 ) exp ( 2 m = 1 M γ m 2 )
这里 γ m = 1 2 e m
推论:如果存在 γ > 0 ,对所有的 m γ m γ ,则:
1 N i = 1 N I ( G ( x i ) y i ) ) exp ( 2 M γ 2 )
这表明在此条件下,此算法的训练误差以指数速率下降

AdaBoost算法的另一种解释

认为AdaBoost算法是模型为加法模型,损失函数为指数函数,学习算法为前向分步算法时的二类分类学习方法
1、前向分步算法
定义:考虑加法模型: f ( x ) = m = 1 M β m b ( x ; γ m )
其中, b ( x ; γ m ) 是基函数, γ m 是基函数的参数, β m 为基函数的系数。
在给定训练数据以及损失函数 L ( y , f ( x ) ) 的条件下,学习加法模型转变成以下求损失函数极小化问题:
min β m , γ m i = 1 N L ( y i , m = 1 M β m b ( x ; γ m ) )
前向分步算法优化此类问题的想法是:从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式。具体的,每步只优化如下损失函数:
min β , γ i = 1 N L ( y i , β b ( x i ; γ ) )
2、前向分步算法与AdaBoost
有1可知,AdaBoost算法其实是前向分步算法的特例,模型是由基本的分类器组成的加法模型,损失函数是指数函数。

猜你喜欢

转载自blog.csdn.net/yeyustudy/article/details/80325617