决策树、随机森林之四,关于提升(一)

关于提升

之前,关于随机森林的做法是:通过有放回的重采样生成出若干颗决策树\bigl(\begin{smallmatrix} \\ T_{1} \\ T_{2} \\ \cdot \cdot \cdot \\ T_{m} \end{smallmatrix}\bigr),从中取一个平均得到森林,这个randomforest实际是对这m颗树取平均得到的,它没有哪棵树更重要哪颗树不重要这种说法。

那么能不能换一种思路,给出这些树的权值,比如\bigl(\begin{smallmatrix} \\ {\alpha_{1} T_{1}} \\ {\alpha_{2}T_{2}} \\ \cdot \cdot \cdot \\ {\alpha_{m}T_{m}} \end{smallmatrix}\bigr),并不是简单的取平均而是加权,我们把这样一种方式叫做提升。用图来说明:

提升的概念

提升是一个机器学习技术,可以用于回归和分类,它每一步产生一个弱预测模型(如决策树),并加权累加到模型中;如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升( Gradient boosting)

梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);提升算法通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。这种在函数域的梯度提升观点对机器学习的很多领域有深刻影响。

提升的理论意义:如果一个问题存在弱分类器,则可以通过提升的办法得到强分类器。(所谓的弱分类器可能就是准确率50%多一丢丢。如果存在弱分类器,那么一定存在对应的强分类器。也就是说如果一个问题有办法解决,那么一定存在一个好办法解决它。)

提升算法

给定输入向量x和输出变量y组成的若干训练样本\left ( x_{1}, y_{1}} \right ),\left ( x_{2}, y_{2}} \right )\cdot \cdot \cdot \left ( x_{n}, y_{n}} \right ),目标是找到近似函数\hat{F}(\vec{x}),使得损失函数L(y,F(x))的损失值最小(损失函数就是均方误差)。

L(y,F(x))的典型定义为:L(y,F(\vec{x}))=\frac{1}{2}(y-F(\vec{x}))^{2}\cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot (1)

                                           L(y,F(\vec{x}))=\left |y-F(\vec{x}) \right |\cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot (2)

假定最有函数为F^{*}(\vec{x})=arg\underset{F}{min}E_{(x,y)}\left [ L(y,F(\vec{x}) \right ],这个函数的意思是F(\vec{x})取到何值时能使E_{x,y}()最小,此时F(\vec{x})即为F^{*}(\vec{x})。或者说是我们找一个分类器F,使得期望最小,则这个F就是最优的分类器。相当于是期望风险最小化

假定F(x)是一族基函数f_{i}(x)的加权和,即F(\vec{x})=\sum_{i=1}^{M}\gamma_{i}f_{i}(x)+const

如果用式(1),y相当于服从高斯分布。

对提升算法做推导:

梯度提升方法寻找最优解F(x),使得损失函数在训练集上的期望最小。方法如下:

1)给定常函数F_{0}(x)(其本质即对样本求期望):

F_{0}(\vec{x})=arg\underset{\gamma }{min}\sum_{i=1}^{n}L(y_{i},\gamma )

2)以贪心的思路扩展得到F_{m}(x)

F_{m}(\vec{x})=F_{m-1}(\vec{x})+arg\underset{f\in H}{min}\sum_{i=1}^{n}L(y_{i},F_{m-1}(\vec{x})+f(\vec{x_{i}}))

梯度近似:

贪心法在每次选择最优基函数f时仍然困难,因此使用梯度下降的方法近似计算,即

F_{m}(\vec{x})=F_{m-1}(\vec{x})-\gamma _{m}\sum_{i=1}^{n}\bigtriangledown _{f}L(y_{i},F_{m-1}(\vec{x_{i}}))

其中\gamma为梯度下降的步长,使用线性搜素求最优步长(每次下降一点点)。

换种思路理解

假设有(x_{1},y_{1}),(x_{2},y_{2})\cdot \cdot \cdot \cdot \cdot (x_{n},y_{n})这样一个样本,总能得到一个决策树(暂先把它叫做T_{0}),对T_{0}输入x_{0}总能得到一个预测值\hat{y}_{0},这个决策树就是x_{i}的一个函数。

即,对于样本值能得到一组预测值(x_{1},\hat{y}_{1}),(x_{2},\hat{y}_{2})\cdot \cdot \cdot \cdot \cdot (x_{n},\hat{y}_{n})y_{i}-\hat{y}_{i}就是真残差,如何残差值均为0,就说这颗决策树在训练样本上都很好。

对每一个x_{i}都有一个y_{i}-\hat{y}_{i},于是便又可以构成一颗决策树(其本质是让\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})做损失函数):

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部