1、Boost Tree 模型
提升树模型一般是以CART树为基函数,采用加法模型与前向分布算法来拟合目标。第t时刻的模型为:
f(t)(x)=f(t−1)(x)+Tt(x;θ)
其中, f(t−1)(x) 是t-1时刻的模型,通过经验风险最小化来获得下一棵决策树 Tt(x;θ) 。优化目标函数为:
obj=∑i=1nl(yi,f(t)(x))=∑i=1nl(yi,f(t−1)(x)+Tt(x;θ))
当采用平方误差损失作为模型的损失函数时,损失函数可以改写为:
l(y,f(t−1)(x)+Tt(x;θ))=(y−f(t−1)(x)−Tt(x;θ))2=(r−Tt(x;θ))2
其中, r=y−f(t−1)(x) 是当前模型拟合数据的残差。因此,当损失函数为平方误差损失时,提升树算法只需要简单第拟合当前模型的残差来构造下一棵树即可。
2、GBDT模型
上面讲到,当损失函数是平方误差损失时,我们可以直接简单地拟合模型的残差来训练回归树,是指数函数时, e−(f(t−1)(x)+Tt(x;θ)) ,取log后与平方误差的形式一致,也容易训练。但当损失函数是其他损失函数时,优化目标则没有那么友好简单,也就使得优化变得困难。这时候,GBDT模型就被提出来了,与提升树不同的一点是,它利用损失函数的负梯度在当前模型下的值作为提升树算法中残差的近似值,拟合一个回归树。
r=−[∂l(y,f(x))∂f(x)]f(x)=f(t−1)(x)
3、xgboost模型
xgboost是GBDT的一个改进模型,能够克服GBDT难以并行化,计算复杂度高等问题,下面给出xgboost模型的推导过程。
一般来讲,以结构风险最小化为优化目标的机器学习模型,其优化函数的形式如下:
obj=∑i=1nl(yi,yi^)+λΩ(T)
其中第一项是模型预测值与真实值的损失度量函数,第二项是一个正则化项,起到控制模型复杂度,防止过拟合的作用。
将提升树的加法模型代入上式可得:
obj=∑i=1nl(yi,f(t−1)(xi)+Tt(xi;θ))+λΩ(T)
若我们采用平方误差损失作为损失函数,上式可以转化为:
obj