提升树:以决策树为基函数的提升方法
模型:决策树的加法模型
策略:最小化损失函数(分类问题:指数函数;回归问题:平方误差)
算法: 前向分步
不同问题的提升树学习算法,主要区别在于使用的损失函数不同,包括
用指数损失函数的二分类问题
用平方误差损失函数的回归问题
对于这两种损失函数而言,前向分步算法中每一步的优化是很简单的,但对于一般的损失函数而言,并不容易。
因此后面才有GBDT 梯度提升树的提出
对于二分类问题,提升树算法只需要将AdaBoost中的基分类器变为二类分类树。
提升树模型
f M ( x ) = ∑ m = 1 M T ( x ; Θ m ) f_M(x) = \sum_{m=1}^MT(x; \Theta_m) fM(x)=m=1∑MT(x;Θm)
T ( x ; Θ m ) T(x; \Theta_m) T(x;Θm)表示决策树, Θ m \Theta_m Θm为决策树参数,M为树的个数。
前向分步算法
f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
f m ( x ) = f m − 1 ( x ) + T ( x ; Θ m ) , m = 1 , 2 , , . . M f_m(x) = f_{m-1}(x)+T(x; \Theta_m), m =1,2,,..M fm(x)=fm−1(x)+T(x;Θm),m=1,2,,..M
在第m步时,给定当前的模型 f m − 1 ( x ) f_{m-1}(x) fm−1(x),需求解
Θ ^ m = arg min Θ m ∑ i = 1 N L ( y i , f m − 1 ( x i ) + T ( x i ; Θ m ) ) \hat{\Theta}_{m} = \mathop{\arg\min}_{\Theta_m}\sum_{i=1}^NL(y_i,f_{m-1}(x_i)+T(x_i;\Theta_m)) Θ^m=argminΘmi=1∑NL(yi,fm−1(xi)+T(xi;Θm))
得到 Θ ^ m \hat{\Theta}_{m} Θ^m,即第m棵树的参数。
采用平方误差损失函数时
L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x)) = (y-f(x))^2 L(y,f(x))=(y−f(x))2
L ( y , f m − 1 ( x ) + T ( x ; Θ m ) ) L(y,f_{m-1}(x)+T(x;\Theta_m)) L(y,fm−1(x)+T(x;Θm))
= [ y − f m − 1 ( x ) − T ( x ; Θ m ) ) ] 2 =[y-f_{m-1}(x)-T(x;\Theta_m))]^2 =[y−fm−1(x)−T(x;Θm))]2
= [ r − T ( x ; Θ m ) ) ] 2 =[r-T(x;\Theta_m))]^2 =[r−T(x;Θm))]2
其中 r = y − f m − 1 ( x ) r = y-f_{m-1}(x) r=y−fm−1(x) , 是当前模型拟合数据的残差。
用拟合残差学习一个回归树,得到 T ( x ; Θ m ) T(x;\Theta_m) T(x;Θm)
对于优化问题
m i n f ( w ) minf(w) minf(w)
对于损失函数, L ( y , f ( x ) ) L(y,f(x)) L(y,f(x)),希望求得最优的函数 f ∗ ( x ) f^*(x) f∗(x)。
把 f ( x ) f(x) f(x)看作整体(和上面的 w w w一样)。
把2中的 f ( x ) f(x) f(x)用决策树 T ( x ; Θ m ) T(x; \Theta_m) T(x;Θm)替换,就得到GBDT算法。
可以看到GBDT用损失函数的负梯度在当前模型的值,去拟合下一个决策树
GBDT的损失函数定义为平方误差损失函数就得到上面的回归问题的提升树
L ( y , f ( x ) ) = 1 2 ( f ( x ) − y ) 2 L(y,f(x)) = \frac{1}{2}(f(x)-y)^2 L(y,f(x))=21(f(x)−y)2
d i = − ∂ L ( y , f ( x ) ) ∂ f ( x ) ∣ f m − 1 ( x ) = y − f m − 1 ( x ) d_i = -\left.\frac{\partial L(y,f(x))}{\partial f(x)}\right|_{f_{m-1}(x)}=y-f_{m-1}(x) di=−∂f(x)∂L(y,f(x))∣∣∣∣fm−1(x)=y−fm−1(x)
损失函数的负梯度在当前模型的值是残差,用残差拟合回归树。
参考文献
【1】http://blog.csdn.net/google19890102/article/details/51746402
【2】https://www.cnblogs.com/pinard/p/6140514.html