您的位置:首页 > 其它

梯度提升(gradient boosting)算法

2015-07-28 11:21 513 查看

算法:

输入:训练数据集 T={(x1,y1),(x2,y2),⋯,(xN,yN)},xi∈Rn,yi∈R;损失函数L(y,f(x));

输出:回归树 f^(x) .

(1) 初始化f0(x)=argminc∑i=1NL(yi,c) (2) 对 m=1,2,⋯,M

(a) 对 i=1,2,⋯,N,计算rmi=−[∂L(yi,f(xi))∂f(xi)]f(x)=fm−1(x) (b) 拟合残差 rmi 学习一个回归树,得到第 m 棵树的叶结点区域 Rmj,j=1,2,⋯,J

(c) 对 j=1,2,⋯,J,计算cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+c) (d) 更新fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj) (3) 得到回归树f^(x)=fM(x)=∑m=1M∑j=1JcmjI(x∈Rmj)

思路说明:

算法第 1 步初始化,估计使损失函数极小化的常数值,它是只有一个根结点的树。第 2(a) 步计算损失函数的负梯度在当前模型的值,将它作为残差的估计。对于平方损失函数,他就是通常所说的残差;对于一般损失函数,它就是残差的近似值。第 2(b) 步估计回归树叶结点区域,以拟合残差的近似值。第 2(c) 步利用线性搜索估计叶结点区域的值,是损失函数极小化。第 2(d) 步更新回归树。第 (3) 步得到输出的最终模型 f^(x) .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: