机器学习技法-GBDT算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture
之前看过别人的竞赛视频,知道GBDT这个算法应用十分广泛。林在第八讲,简单的介绍了AdaBoost,这一讲会更深入的从优化的角度看AdaBoost,然后引出GBDT算法,最后林对最近几讲的集成学习模型(Aggregation Models)做了个很棒的总结。
一、RandomForest Vs AdaBoost-DTree
- RF随机森林算法:通过bootstrapping有放回的抽样获取不同的训练数据Dt,不同的Dt可同时并行化生成多棵决策树最后将多棵决策树‘一人一票’的方式结合生成G。
- AdaBoost-DTree:通多重赋权reweight(样本权重Ut)的方式获取不同的训练数据Dt,Ut依赖于上一次的迭代的分类结果,决策树之间存在依赖关系,必须串行生成每一棵决策树。最后每一棵决策树通过权值alphat结合生成G。
- 在AdaBoost-DTree中,为了不修改原来的模型,数据按照样本权重u的比例大小对样本进行sampling,采样后的数据D中也能体现出样本的权重。
- 直接使用fully grown tree 训练Dt,会产生autocracy,需要剪枝或使用弱决策树算法
二、从优化的角度看AdaBoost
1.AdaBoost的指数损失函数(loss function)
- 林通过指数损失函数,从优化的角度推导了AdaBoost-DTree
- 样本权重与所有gt在该样本的投票的分数有关,分数越高,权值越小。AdaBoost迭代过程中会降低样本的权重。
2.下一步是如何根据损失函数找到下一个gt,最后的结论是损失函数的梯度的最大值(steepest descent)。
下面是推导过程,建议去看视频理解,有点绕。
三、GBDT(Gradient Boosting Decision Tree)
1.AdaBoost vs GradientBoost
这部分是将第二部分的AdaBoost进行推广,误差函数(error function)扩展为任意的。
2.使用平方误差函数(squared-error)的GDBT,和上面的思路一样求解ht和移动的幅度
四、模型融合(Aggregation models)的对比、总结
1.获得不同的gt之后的融合方式的对比
2.获取gt的方式和融合的方式对比