参考http://www.cnblogs.com/LeftNotEasy/archive/2011/03/07/1976562.html
决策树算法有很多良好的特性,比如可以直观的展示模型,适用于非线性分类等。但是单决策树容易过拟合,于是人们采用剪枝的办法来尽量减少这种情况。后来出现将模型组合(boosting,bagging)与决策树结合,使几百颗简单的决策树组合在一起,组合后的分类器很强大,不容易过拟合。常见的两种基本形式有GBDT和随机森林(RF)。而xgboost是eXtreme Gradient Boosting,xgboost最大的特点在于,它能够自动利用CPU的多线程进行并行,同时在算法上加以改进提高了精度。接下来一一介绍三种算法。
1.GBDT
GBDT(Gradient Boost Decision Tree)又叫MART(Multiple Additive Regression Tree),GBRT(Gradient Boost Regression Tree),Tree Net等。
先讲一下Gradient Boost与传统的Boost的不同,传统的Boost是给每个样本赋一个权值,然后每次分错的样本的权值会增大,分对的样本的权值就会减小,进行M此迭代后,将M个弱分类器组合在一起,组合为一个强分类器,其中分类正确率高的弱分类器的权值比较大,分类正确率低的分类器的权值小。而Gradient Boost每次迭代的目标是为了减少上一次的残差(residual),在残差减少的梯度(Gradient)方向上建立一个新的模型。也就是说,在Gradient Boost中,每个新的模型的建立是使之前模型的残差往梯度方向减少,与传统Boost对正确、错误的样本进行加权有着很大的区别。