总结机器学习中的boosting模型。
1. AdaBoost算法:
输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)} , 其中 xi∈X⊆Rn,yi∈Y={+1,−1},i=1,2,⋯,N ;弱学习算法
输出:分类器 G(x)
-
初始化训练数据的权值分布
D1=(w11,w12,⋯,w1N),w1i=1N,i=1,2,⋯,N -
对 m=1,2,⋯,M
Gm(x):X→{−1,+1}
2.1 使用具有权值分布 Dm 的训练数据集学习,得到基本分类器2.2 计算 Gm(x) 在训练数据集上的分类误差率
em=P(Gm(xi)≠yi)=N∑i=1wmiI(Gm(xi)≠yi)2.3 计算 Gm(x)的系数
αm=12log1−emem2.4 更新训练数据集的权值分布
Dm+1=(wm+1,1,⋯,wm+1,i,⋯,wm+1,N)wm+1,i=wmiZmexp(−αmyiGm(xi)),={ wmiZmexp(−αm),Gm(xi)=yiwmiZmexp(αm),Gm(xi)≠yii=1,2,⋯,N其中,Zm是规范其中,Zm是规范化因子
Zm=N∑i=1wmiexp(−αmyi,Gm(xi)) -
构建基本分类器的线性
f(x)=M∑m=1αmGm(x)得到最终分类器
2. 加法模型
f(x)=M∑m=1βmb(x;γm)其中,b(x;γm)为基函数,βm为基函数系数,γm为基函数参数。
在给定训练数据及损失函数 L(y,f(x)) 的条件下,学习加法模型 f(x)成为经验风险极小化问题
minβm,γmN∑i=1L(yi,M∑m=1βmb(xi;γm))学习加法模型,从前向后每一步只学习一个基函数及其系数,即每步只优化
minβ,γN∑i=1L(yi,βb(xi;γ))3. 前向分布算法:
输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)} ,损失函数 L(y,f(x)) ;基函数集 {b(x;γ)}
输出:加法模型f(x)
- 初始化 f0(x)=0
-
对 m=1,2,⋯,M
(βm,γm)=argminβ,γN∑i=1L(yi,fm−1(xi)+βb(xi;γ))
2.1 极小化损失函数得到参数 βm,γm
2.2 更新
fm(x)=fm−1(x)+βmb(x;γm) - 得到加法模型
训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)}其中,xi∈X⊆Rn,yi∈Y⊆R,i=1,2,⋯,N。
将输入空间 X 划分为 J 个互不相交的区域R1,R2,⋯,RJ,且在每个区域上确定输出的常量cj,则回归树
T(x;Θ)=J∑j=1cjI(x∈Rj)其中,参数 Θ={(R1,c1),(R2,c2),⋯,(RJ,cJ)} 表示树的区域划分和各区域上的常数。J是回归树的负责度即叶结点个数。
4. 回归提升树使用前向分布算法
f0=0fm(x)=fm−1(x)+T(x;Θm)fM=M∑m=1T(x;Θm)在前向分布算法的第 m 步给定当前模型fm−1(x) ,模型参数
ˆΘm=argminΘmN∑i=1L(yi,fm−1(xi)+T(xi;Θm))得到第m棵树的参数ˆΘm
当采用平方误差损失函数
L(y,fm−1(x)+T(x;Θm))=[y−fm−1(x)−T(x;Θm)]2=[r−T(x;Θm)]2其中,r=y−fm−1(x)是当前模型拟合数据的残差。
5. 回归提升树算法:
输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)},xi∈X⊆Rn,yi∈Y⊆R,i=1,2,⋯,N
输出:回归提升树 fM(x)
- 初始化 f0(x)=0
-
对 m=1,2,⋯,M
rmi=yi−fm−1(xi),i=1,2,⋯,N
2.1 计算残差2.2 拟合残差rmi学习一个回归树,得到T(x;Θm)
2.3 更新fm=fm−1(x)+T(x;Θm) -
得到回归提升
fM(x)=M∑m=1T(x;Θm)
6 梯度提升算法:
输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)},xi∈X⊆Rn,yi∈Y⊆R,i=1,2,⋯,N ,损失函数 L(y,f(x))
输入:回归树 ˆf(x)
- 初始化
-
对 m=1,2,⋯,M
rmi=−[∂L(yi,f(xi))∂f(xi)]f(x)=fm−1(x)
2.1 对 i=1,2,⋯,N计算2.2 对 rmi拟合回归树,得到第m棵树的叶结点区域 Rmj,j=1,2,⋯,J
2.3 对 j=1,2,⋯,J计算
cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+c)2.4 更新fm(x)=fm−1(x)+∑Jj=1cmjI(x∈Rmj)
-
得到回归树
Be the first person to leave a comment!