博主最近迷上了打怪物猎人,这片文章拖了很久才开始动笔
一、算法
AdditiveRegression,换个更出名一点的叫法可以称作GBDT(Grandient Boosting Decision Tree)梯度下降分类树,或者GBRT(Grandient Boosting Regression Tree)梯度下降回归树,是一种多分类器组合的算法,更确切的说,是属于Boosting算法。
谈到Boosting算法,就不能不提AdaBoost,参见之前我写的博客,可以看到AdaBoost的核心是级联分类器,使后一级分类器更加“关注”较为容易分错的数据,即后一级的分类器更有在易出错的数据集上进行训练。。
而GBDT作为Boosting算法,也是将多分类器进行级联训练,后一级的分类器则更多关注前面所有分类器预测结果与实际结果的残差,在这个残差上训练新的分类器,最终预测时将残差级联相加。
关于GBDT相关算法的公式推导可参考:
http://en.wikipedia.org/wiki/Gradient_boosting#Gradient_tree_boosting
http://www.360doc.com/content/12/0428/15/5874309_207282768.shtml
扯了这么多,下面简单说一下算法训练流程。
(1)输入训练集Data和基分类器的数量N
(2)使用训练集Data训练第1个基分类器
(3)for (int i=2;i<N;i++)