天天看点

机器学习:GBDT(Gradient Boosting Decision Tree)

GBDT涉及到模型融合,模型融合分为三类,Bagging、Boosting和Stacking。Gradient Boost是一个框架,里面可以套入很多不同的算法。GBDT就是其中的一个子类,以决策树作为弱分类器。GBDT可以用来做分类,也可以用来做回归。

Boosting:Boosting是一个前向分布算法,在每一步求解弱分类器和它的参数后,不去修改之前已经求好的分类器和参数。

决策树:决策树分为ID3、C4.5和CART决策树三种,其中ID3使用信息增益作为分支条件,C4.5信息增益比,CART使用Gini系数。选取信息增益最大的特征作为分支条件,构建一棵树,从上到下递归生成子节点,直到数据集不可分。C4.5、ID3可以是多叉树,CART算法只能是二叉树。

一句话介绍:GBDT是通过采用加法模型(基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据分类或者回归的算法。

训练过程:采用CART树,每个分类器在上个分类器的残差基础上进行训练,拟合上一步的残差,通过梯度下降让损失函数不断的减小。(之所以拟合残差可以逼近到真值,是因为使用了平方损失作为损失函数)

如何选择特征:(讲解CART Tree生成的过程)遍历每个特征,找到最优特征的最优切分点,直到停止,构建一棵最小二乘回归树。

如何构建特征:GBDT本身不能产生特征,利用它可以去产生特征的组合。比如在CTR预估中,一般会采用逻辑回归进行处理,而逻辑回归适合线性可分的数据,如果要让逻辑回归处理非线性的数据,就可以组合不同的特征,增强逻辑回归对非线性分布的拟合能力。

如何用于分类:GBDT无论用于分类还是回归都是使用的CART回归树。第一步,针对样本X每个可能的类都训练一个分类回归树。然后在每轮训练的时候同时训练三棵树。训练过程就是每棵树的生成过程,最后解出这三棵树,并得到对X类别的预测值,然后仿照多分类的逻辑回归,使用softmax来产生概率,然后针对每个类别求出残差,利用残差继续训练第二轮,以此迭代。最终新来一个样本时,利用上式进行判断这个样本属于某个类别c的概率。

继续阅读