欢迎关注”生信修炼手册”!
GBDT全称为gradient boosting decision tree, 是一种基于决策树的集成学习算法。在Adaboost算法中,弱分类器的模型可以根据需要灵活选择,而GBDT则强制限定为决策树算法。
基于CART决策树算法,GBDT可以用于处理分类和回归两项任务。由此,GBDT又有了各种不同的叫法
1. GBDT, Gradient Boosting Decision Tree
2. GBRT,Gradient Boosting Regression Tree
3. MART, Multiple Addtive Regression Tree
从名称可以看出,GBDT和Adaboost算法一样,都是属于boosting的集成策略,多次迭代之间是存在一个链式的依赖关系。在Adaboost算法中,根据每次迭代调整下一次迭代样本的权重值,而在GBDT中,则将每次迭代的损失函数值作为下次迭代拟合的目标值。
在求解回归问题时,GBDT可以使用均方差作为误差的衡量值,在求解分类问题时,则使用逻辑回归中目标和损失函数的定义方式来量化计算过程。
以下列数据为例,具体看下算法的求解过程
该数据表示泰塔尼克号上乘客的生存情况,第一步,计算初始值,利用了逻辑回归中目标值的定义,计算如下
样本共6名乘客,其中4名生还,P表示生还的概率,1-P则表示死亡的概率,带入上述公式,即可算出初始值。
计算出初始值之后,计算样本初始值与真实值之间的残差,结果如下
将残差作为拟合的目标值,构建分类树,结果如下所示
注意,这个分类树是为了便于展示算法过程,构建的示例,并不是真实的分类结果。根据建好的分类树,要计算样本对应的新的拟合值,为了方便计算,引入了如下转换公式
使用该公式,对于示例中的决策树,第一个叶子节点的计算结果如下
第二个叶子节点的计算结果如下
第三个叶子节点的计算结果如下
整颗决策树的结果如下所示