1. 程式人生 > >GBDT梯度提升樹(一)

GBDT梯度提升樹(一)

提升樹(例項)

原始資料
已知訓練資料如上表所示,x的取值範圍為區間[0.5,10.5],y的取值範圍為區間[5.0,10.0],學習這個迴歸問題的提升樹模型,考慮只用樹樁作為基函式。


  既然是一個提升樹, f M ( x ) =

m = 1 M T ( x ;
θ m ) f_M (x)=\sum_{m=1}^{M}T(x;θ_m ) ,那麼第一步需要求 f 1
( x ) f_1 (x)
,即迴歸樹 T 1 ( x ) T_1 (x) ,首先通過以下優化問題,
min s [ min e 1 x i R 1 ( y i c 1 ) 2 + min e 2 x i R 2 ( y i c 2 ) 2 ] \min_{s}⁡[\min_{e_1} ⁡\sum_{x_i∈R_1}(y_i-c_1 )^2+\min_{e_2}\sum_{x_i∈R_2}(y_i-c_2 )^2 ]
  然後求解訓練資料的的切分點S, R 1 = { x x s } , R 2 = { x x > s } R_1=\{x|x≤s\} ,R_2=\{x|x>s\} ,容易求得在 R 1 R_1 R 2 R_2 內部使平方損失誤差達到最小值的 c 1 c_1 c 2 c_2 ,分別為 c 1 = 1 N 1 x i R 1 y i c_1=\frac{1}{N_1}\sum_{x_i∈R_1}y_i , c 2 = 1 N 2 x i R 2 y i c_2=\frac{1}{N_2}\sum_{x_i∈R_2}y_i ,這裡 N 1 N_1 N 2 N_2 是樣本個數。
m ( s ) = min e 1 x i R 1 ( y i c 1 ) 2 + min e 2 x i R 2 ( y i c 2 ) 2 m(s)=\min_{e_1}\sum_{x_i∈R_1}(y_i-c_1 )^2+\min_{e_2}⁡\sum_{x_i∈R_2}(y_i-c_2 )^2
  將上面的想法應用到資料上,考慮切分點:1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5。
  當s=1.5, R 1 R_1 ={1}, R 2 R_2 ={2,3,4,5,6,7,8,9,10}, c 1 c_1 =5.56, c 2 c_2 =7.50, m(s)=0+15.72=15.72;將s和m(s) 計算結果記錄。
一次決策分裂資料
  由上表可知,當s=6.5時, m(s)達到最小值,此時 R 1 R_1