Boosting算法

为什么要找负梯度?

函数值沿着梯度的方向增加的最快,逆着梯度的方向函数值减小的最快。

因此我们用上一个学习器f_T-1与目标值y的差距(注意:是损失函数而不是原始的偏差y_i - y_p)的负梯度作为拟合当前学习器f_T的目标。
我们希望在拟合f_T的时候能降低f_T-1 - y的差距。

如果拟合第一棵树时,我们的输入是【x_i,y_i】,那么我们拟合f_T时的输入就变成【x_i,-grad_i】

一颗决策树,本质上一个叶节点才是一个子分类函数,所有的样本最终都是分类到同的叶节点中。因此,对于决策树的提升拟合过程中每次关注的是叶节点的boosting。

GBDT基于回归树的,如何做分类?

因为是基于残差拟合,因此GBDT都是基于回归树,残差有实际意义。即使在做分类问题,也是将类别转化成概率,看成回归问题。

无论是回归问题还是分类问题(拟合的是离散值,直接做差没有意义)都是以回归树为解决手段。分类问题可以通过对数几率转化为拟合类别概率,那么概率的差值就有意义的。

对于GBDT系列算法,需要考虑的东西

  1. F_0( )如何初始化---以观测到的对数相对几率初始化
  2. 如何由F_T 拟合 F_T+1
  3. 最终,学习器组合预测时,组合权重怎么求?

GBDT和RF的基学习器都是CART

Gini指数适合分类问题的节点分裂选择
MSE适合回归问题的节点分裂选择
另外,分类问题可以转化成类别概率的回归问题

节点分裂的计算公式,与损失函数计算是两码事。

https://blog.csdn.net/qq_22238533/article/details/79192579

posted @ 2021-03-12 23:44  Parallax  阅读(139)  评论(0编辑  收藏  举报