- 提升:每一步产生一个弱的预测模型(如决策树),并加权到总的模型中
- 每一步弱模型的的生成都是依据损失函数的梯度下降方向—梯度提升
提升算法
给定输入向量和输出变量 (x1,y1)...(xn,yn) , 目标是找到近似函数 F′(x→) 使得损失函数 L(y,F(x)) 的损失值最小
最优函数
F∗(x→)=argminFE(x,y)[L(x,F(x→)]F(x)是一族基函数 fi(x)的加权和
F(x→)=ΣMi=1γifi(x)+const
提升算法推导
需找最优解 F(x) , 使得损失函数在训练集上的期望最小。
首先,给定常函数 F0(x)
F0(x→)=argminγΣni=1L(yi,γ)
贪心算法
Fm(x→)=Fm−1(x→)+argminf∈HΣni=1L(yi,Fm−1(xi→)+f(xi→))
梯度近似
使用梯度下降的方法近似计算
给定模型为常数
F0(x→)=argminγΣni=1L(yi,γ)对于m=1到M
a 计算伪残差(用梯度来代替正真的残差:真正残差= ym−Fm−1(x) )
rim=[∂L(yi,F(xi→))∂F(xi→)]F(x→)=Fm−1(x→)
b 使用数据 (xi→,rim)ni=1 计算残差的基函数 fm(x)
c 计算步长
更新模型 Fm(x→)=Fm−1(x→)−rmfm(xi→)
Adaboost
- 采用指数损失的方式提升
boosting
PAC
http://blog.pluskid.org/?p=821
http://www.cnblogs.com/HappyAngel/p/3495804.html
- 概率近似正确
- 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率高,则为强可学习的。
- 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率仅比随机猜测高,则为弱学习的。
- 在PAC学习框架下,强可学习和弱可学习是充分必要条件
Adaboost提升算法
- 每一轮如何改变训练数据的权值或者概率分布:提高错误分类的样本的权值
- 将弱分类器组合成强分类器:加权多数表决
算法
输入:训练集 T=(x1,y1),(x2,y2),...,(xN,yN) ; y∈−1,+1 ;
弱分类算法输出:最终的分类器
(1) 初始化训练数据集的权值分布
D1=(w11,...w1i,...w1N),w1i=1N,i=1,2,...,N
(2) 对m=1,2,….M
- 使用具有权值分布的Dm得到基本分类器 ; Gm(x):X−>{−1,+1}
- 计算Gm(x)在训练集上的分类误差率 ; em=P(Gm(xi)≠yi)=ΣNi=1wmiI(Gm(xi)≠yi)
- 计算Gm(x)的系数 ; αm=12log1−emem
- 更新训练数据的权值
Dm+1=(wm=1,1,...,wm+i,i,...wm+1,N)
wm+1,i=wmiZmexp(−αmyiGm(xi))
Zm 是规范化因子
Zm=ΣNi=1wmiexp(−αmyiGm(xi))
(3) 基础分类器的线性组合
f(x=ΣMm=1αmGm(x))
(4) 最终分类器
G(x)=sign(f(x))
Adaboost
- 加法模型
- 损失函数为指数函数
- 学习算法是前向分布算法时的二分类算法