Boosting Ensemble: 机器学习中,Ensemble model除了Bagging之外,更经常使用的是Boosting。与Bagging不一样,Boosting中各个模型是串行的。其思想是,后面的model,要从前面models的预测中结果中,试图将错误纠正。下面两张图能够看出两者的异同:算法
在第一个模型训练以前,各个Training Examples出如今本次训练中的几率相同;训练后的模型,若是在某些数据的预测上出现错误,则这些数据点出如今下个模型中的几率将会被提高,反之预测正确的数据点的几率将会被下调。最终,再将各个模型的输出作合并,给出最终Ensemble模型的预测。该算法的关键点是去设定‘什么时候中止迭代’,由于无休止的纠错最终将致使Overfitting.机器学习
Gradient Boosting Decision Tree(GBDT): 该算法改版自Boosting Ensemble,每一个model采用的都是Decision Tree,同时融入了Gradient Descent的思想。首先,咱们想象在最基础的Boosting Ensemble中,当第一个模型训练后,获得一个预测值h1(X),而指望的输出output为Y,则两者的差值(残差:Residual)为:学习
R1(X)=Y-h1(X)spa
那若是,咱们可以构建一个模型model2,去输出R1(X),那么Model1与Model2的输出之和为Y:blog
Y=h1(X)+R1(X)ci
固然,拟合出R1(X)是最理想的状况,但实际中却只能输出近似值r1(X),将其累加到第一个model的输出上,咱们就获得了model2的输出:it
h2(X)=h1(X)+r1(X)io
这是咱们又获得了R2(X)为Y与h2(X)的差值。循环往复,最终的输出将会不断逼近Y。但,这和Gradient有什么关系呢?基础
该模型在第n个模型上输出的hypothesis是:model
hn(X)=hn-1(X)+rn-1(X)
若是把残差Residual展开:
hn(X)=hn-1(X)+(y-hn-1(X))
在Gradient Descent里面,咱们知道,Cost Function被定义为:
当m为1时,咱们很容易看出,hn(X)的值是在hn-1(X)的基础上,减去了一倍的梯度(learning rate α=1),因此该算法被冠上了Gradient的名字,不无道理哦。