图解GBDT的构造和预测过程

GBDT 及其改进版本(XGboost, lightGBM)在数据竞赛中占了大半江山,网上讲解的文章也很多,但大多是文字和公式的形式,这里尝试用简单的图解形式,去理解 GBDT 的基本操作过程。

参考《统计学习方法》P149中的例子,说明 GBDT 的构造和预测过程。

GBDT的构造

GBDT 采用的弱分类器限定了 CART,因此构造出来的都是二叉树,因为单棵 CART 树的能力有限,GBDT 通过构造多棵回归树去预测,每棵树都预测前面所有树预测之后的残差(损失函数为平方误差时),因此残差越来越小,预测的精度也就越来越高。

图解GBDT的构造和预测过程_第1张图片

上图中,根据数据表8.2,按照 CART 的构造方式,得到第一棵树T1(这里是用了树桩,但实际中每棵树的深度都可以更深),根据T1预测每个x,都会有对应的残差,得到残差表8.4,形成新的训练集(x,r),再训练下一棵树,直至达到指标要求。

GBDT的预测

在《统计学习方法》中,经过训练会得到6棵树,最终的提升树就是这6棵树的组合。

图解GBDT的构造和预测过程_第2张图片

图解GBDT的构造和预测过程_第3张图片

如上图,书中可以说是将6棵树合并成了一棵树,因为这个例题有比较简单的结构,每棵树都是由树桩组成,因此非常容易合并,复杂一些无法合并的树,就是并行地得到每棵树的预测值然后相加就是最终的预测值。

简单小结

GBDT是由多棵树组成的,而且每一颗树都依赖于之前树建立后的残差,因此它的建树过程不是并行的,而是串行的,所以速度较慢。

这种个体学习器之间存在强依赖关系、必须串行生成的序列化方法,就是boosting方法,而个体学习器间不存在强依赖关系、可同时生成的并行化方法,就是bagging,如随机森林。

但对于GBDT,所有的树一旦建好,用它来预测时是并行的,最终的预测值就是所有树的预测值之和。

对于随机森林,它的预测也是并行的,但最终的预测值是所有树预测值的平均。(注:这是对于回归问题)

另外,对于其公式的解释,可以参考:

从回归树到GBDT

梯度提升树(GBDT)原理小结

你可能感兴趣的:(机器学习笔记,机器学习中的小思考)