组合模型DTAdaBoost:深算法及其应用.pdfVIP

  • 0
  • 0
  • 约1.26万字
  • 约 6页
  • 2026-02-04 发布于北京
  • 举报

再谈GBDT算法

在写这篇文章的时候,GBDT正在内广受关注,因为我们搞了个编码竞赛,以提高GBDT

预测模块的性能。现在竞赛才刚刚开始,相信过段时间关注它的人会。说起GBDT,还

和公司的发展有关系。最早我们公司和雅虎开始合作的时候,用到的算法包是

雅虎开发的,其中就包含了GBDT算法,这个算法包在雅虎也是广泛使用的,后来

公司开始开发自己的算法包,GBDT仍然是其中一个重要的算法。写到这里,估计会有

严谨的同学质疑“真的是自己开发的?是不是就是把雅虎的代码抄了一遍”?诚然,早期肯

定是认真参考过雅虎的代码,站在巨人的肩膀上没错。但还真的不是代码,因为随

着学术界的,这个算法本身也在改进,如果不是自己开发,很难把的技术用进

来,另外公司自己开发也能大大降低公司同事对机器学习算法使用的门槛。现在我们公

司开发的算法包里的GBDT早就超过了原雅虎算法包里的实现。

在这篇文章里,我会讲解该算法的大致原理,讲GBDT不借助很难说明白,因此还是摆

了几道,但力求简单易懂,不追求数学上的严谨。ATA上还有一篇元涵写的讲解GBDT

的文章,侧重在DecisionTree和如何使用那个算法包,我这篇可能更偏原理一些。另外,公

达在百家讲坛做过GBDT的报告,也非常值得参考。

Boosting

GBDT的全称是GradientBoostingDecisionTree,GradientBoosting和DecisionTree是两个独

立的概念。因此我们先说说Boosting。Boosting的概念很好理解,意思是用一些弱分类器的

组合来构造一个强分类器。因此,它不是某个具体的算法,它说的是一种理念。和这个理念

相对应的是构造一个强分类器。像支持向量机,逻辑回归等都属于后者。通常,我们

通过相加来组合分类器,形式如下:

()()()()()

Fx=f+αfx+αfx+αfx+⋯+αfx(1)

m0111223mm

其中x表示输入的特征,F(x)表示最终得到的分类器,f,f,…,f分别表示m个弱分类器,

m12m

f是一个常数,α,α,α,…,α分别表示每个弱分类器对应的权重。

0123m

GradientBoostingModeling(GBM)

给定一个问题,我们如何构造这些弱分类器呢?GradientBoostingModeling(GBM)就是构造

这些弱分类的法。同样,它指的不是某个具体的算法,仍然只是一个理念。在理解

GradientBoostingModeling之前,我们先看看一个典型的优化问题:

findx̂=argminf(x)

x

针对这种优化问题,有一个经典的算法叫SteepestGradientDescent,也就是最深梯度下降法。

这个算法的过程大致如下:

1.给点一个起始点x0

2.对i=1,2,…K分别做如下迭代:

∂f

a)xi=x+γ∗g,这里g=−|表示f在x点的梯度

i−1i−1i−1i−1∂xx=xi−1i−1

||

3.直到

文档评论(0)

1亿VIP精品文档

相关文档