机器学习技法-GBDT算法

课程地址:https://class.coursera.org/ntumltwo-002/lecture

之前看过别人的竞赛视频,知道GBDT这个算法应用十分广泛。林在第八讲,简单的介绍了AdaBoost,这一讲会更深入的从优化的角度看AdaBoost,然后引出GBDT算法,最后林对最近几讲的集成学习模型(Aggregation Models)做了个很棒的总结。

image

一、RandomForest Vs AdaBoost-DTree

  • RF随机森林算法:通过bootstrapping有放回的抽样获取不同的训练数据Dt,不同的Dt可同时并行化生成多棵决策树最后将多棵决策树‘一人一票’的方式结合生成G。
  • AdaBoost-DTree:通多重赋权reweight(样本权重Ut)的方式获取不同的训练数据Dt,Ut依赖于上一次的迭代的分类结果,决策树之间存在依赖关系,必须串行生成每一棵决策树。最后每一棵决策树通过权值alphat结合生成G。

image

  • 在AdaBoost-DTree中,为了不修改原来的模型,数据按照样本权重u的比例大小对样本进行sampling,采样后的数据D中也能体现出样本的权重。
  • 直接使用fully grown tree 训练Dt,会产生autocracy,需要剪枝或使用弱决策树算法

image

二、从优化的角度看AdaBoost

1.AdaBoost的指数损失函数(loss function)

  • 林通过指数损失函数,从优化的角度推导了AdaBoost-DTree
  • 样本权重与所有gt在该样本的投票的分数有关,分数越高,权值越小。AdaBoost迭代过程中会降低样本的权重。

image

2.下一步是如何根据损失函数找到下一个gt,最后的结论是损失函数的梯度的最大值(steepest descent)。

下面是推导过程,建议去看视频理解,有点绕。

搜狗截图20160407203911

搜狗截图20160407204121

搜狗截图20160407204250

三、GBDT(Gradient Boosting Decision Tree)

1.AdaBoost vs GradientBoost

这部分是将第二部分的AdaBoost进行推广,误差函数(error function)扩展为任意的。

image

2.使用平方误差函数(squared-error)的GDBT,和上面的思路一样求解ht和移动的幅度

image

image

四、模型融合(Aggregation models)的对比、总结

1.获得不同的gt之后的融合方式的对比

image

2.获取gt的方式和融合的方式对比

image

image

posted @ 2016-04-07 21:13  wxquare  阅读(2870)  评论(0编辑  收藏  举报