w28971023的专栏

一、要理解GBDT当然要从GB(Gradient Boosting)和DT(Decision Tree)两个角度来理解了;

二、GB其实是一种理念,他并不是这一个具体的算法,意思是说沿着梯度方向,构造一系列的弱分类器函数,并以一定权重组合起来,形成最终决策的强分类器;注意,这里的梯度下降法是在函数空间中通过梯度下降法寻找使得LOSS最小的一个函数,区别于传统的梯度下降法选择一个方向;那么问题就来了,对函数求导?这也太难了吧。所以就有了一个近似的方法,这个方法的前提是我们认为在训练集上使得LOSS最小的函数,往往在测试集上表现会好,,即在训练集上寻优;因此,把求导的函数理解成在训练集上该函数对应的离散的函数值,对函数求导就变成了对样本的函数值向量求导;因此就可以得到一个梯度向量,表示寻找到的最优函数, 这个函数就是一个新的弱分类器;

三、通过回归树来拟合这个梯度向量,就得到了DT,而每棵树就对应上面的函数,其预测值就是函数值;

四、当我们选择平方差损失函数时,函数向量就表示成前一棵回归树在样本空间上的预测值,则对函数向量求梯度就等于目标值减去预测值,即我们所说的残差向量;因此,下一棵回归树就是在拟合这个残差向量;

五、回归树拟合可以通过平均最小均方差来寻找分裂点,生成一个树;当然这棵树不可能完全拟合得好,因此,又会通过对损失函数求梯度,得到新的残差向量;

六、对初始分类器(函数)的选择就可以直接用0,通过平方差LOSS函数求得的残差当然就是样本本身了;也可以选择样本的均值;

七、一棵树的分裂过程只需要找到找到每个结点的分裂的特征id与特征值,而寻找的方法可以是平均最小均方差,也可以是使得(左子树样子目标值和的平方均值+右子树目标值和的平方均值-父结点所有样本和的平方均值)最大的那个分裂点与分裂特征值等等方法;从而将样本分到左右子树中,继续上面过程;

八、用残差更新每个样本的目标值:叶子节点的均值作为落到该叶子节点的样本的预测值,使用目标值减去预测值,得到该样本的残差,作为下一棵树的训练目标;

有的旅行时为了寻找逝去的年华,重温青春的惆怅。

w28971023的专栏

相关文章:

你感兴趣的文章:

标签云: