提升方法
笔记摘要
- 在PAC(概率近似正确(PAC, Probably approximately correct))学习框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。
- 提升方法的两个问题
- 在每一轮如何改变训练数据的权值或概率分布
- 如何将弱分类器组合成一个强分类器
- 提高那些被前一轮弱分类器错误分类样本的权值,降低那些被正确分类的样本的权值
- 加权多数表决的方法,加大分类误差率小的弱分类器的权值,减小分类误差率大的弱分类器的权值
AdaBoost算法
- 输入:弱学习算法和训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},x∈X⊆Rn
- 输出:最终分类器G(x)
- 步骤
- 初始化训练数据的权值分布 D1=(w11,⋯,w1i,⋯,w1N,w1i=N1)
- m = 1,2, ⋯,M
( a ) 使用具有权值分布Dm的训练数据集学习,得到基本的分类器Gm(x):X→{−1,+1}
( b ) 计算Gm(x)在训练集上的分类误差率em=i=1∑NP(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi)
( c ) 计算Gm(x)的系数αm=21logem1−em
( d ) 更新训练数据集的权值分布wm+1,i=Zmwmiexp(−αmyiGm(xi))
Zm=i=1∑Nwmiexp(−αmyiGm(xi))
- f(x)=∑m=1MαmGm(x)
- 最终分类器G(x)=sign(f(x))=sign(∑m=1MαmGm(x))
- 误分类样本在下一轮学习中起更大的作用。不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同的作用, 这是AdaBoost的一个特点
- 利用基本分类器的线性组合构建最终分类器使AdaBoost的另一特点
AdaBoost算法的训练误差分析
N1i=1∑NI(G(xi)=yi)≤N1i∑exp(−yif(xi))=m∏Zm
这个的意思就是说指数损失是0-1损失的上界,这个上界使通过递推得到的,是归一化系数的连乘
AdaBoost算法的解释
- 模型为加法模型, 损失函数为指数函数, 学习算法为前向分步算法时的二分类学习方法。根据这些条件可以推导出AdaBoost
前向分步算法
-
输入:训练数据集T=(x1,y1),(x2,y2),...,(xN,yN),xi∈X⊆Rn,yi∈{−1,1}, 损失函数L(y,f(x)); 基函数集合{b(x;γ)}
-
输出:加法模型f(x)
-
步骤:
-
初始化f0(x)=0
-
对m=1,2,⋯,M, 极小化损失函数
(βm,γm)=argβ,γmini=1∑NL(yi,fm−1(xi)+βb(xi;γ))
-
更新
fm(x)=fm−1(x)+βmb(x;γm)
-
得到加法模型
f(x)=fM(x)=m=1∑Mβmb(x;γm)
提升树
- 提升树是以分类树或回归树为基本分类器的提升方法,被认为是统计学习中性能最好的方法之一
- 提升方法实际采用加法模型(即基函数的线性组合)与前向分步算法
提升树模型
- 以决策树为基函数的提升方法称为提升树
- 提升树模型可以表示成决策树的加法模型
fM(x)=m=1∑MT(x;Θm)
提升树算法
- 针对不同问题的提升树学习算法, 其主要区别在于使用的损失函数不同:
- 平方误差损失函数用于回归问题
- 指数损失函数用于分类问题
- 一般损失函数的一般决策问题
回归问题的提升树算法
-
输入:训练数据集T=(x1,y1),(x2,y2),...,(xN,yN),xi∈X⊆Rn,yi∈Y⊆R
-
输出:提升树fM(x)
-
步骤:
- 初始化f0(x)=0
- 对m=1,2,…,M
- 计算残差
rmi=yi−fm−1(xi),i=1,2,…,N
- 拟合残差rmi学习一个回归树,得到T(x;Θm)
- 更新fm(x)=fm−1(x)+T(x;Θm)
- 得到回归问题提升树
f(x)=fM(x)=m=1∑MT(x;Θm)
梯度提升(GBDT)
输入: 训练数据集T=(x1,y1),(x2,y2),…,(xN,yN),xi∈x⊆Rn,yi∈y⊆R;损失函数L(y,f(x))
输出:回归树f^(x)
步骤:
-
初始化
f0(x)=argcmini=1∑NL(yi,c)
-
对m=1,2,⋯,M
( a )对i=1,2,⋯,N,计算
rmi=−[∂f(xi)∂L(yi,f(xi))]f(x)=fm−1(x)
( b )对rmi拟合一个回归树,得到第m棵树的叶节点区域Rmj,j=1,2,…,J
( c ) 对j=1,2,…,J,计算
cmj=argcminxi∈Rmj∑L(yi,fm−1(xi)+c)
-
更新
fm(x)=fm−1(x)+j=1∑JcmjI(x∈Rmj)
-
得到回归树
f^(x)=fM(x)=m=1∑Mj=1∑JcmjI(x∈Rmj)
习题解答