1. 程式人生 > >從決策樹到GBDT梯度提升決策樹和XGBoost

從決策樹到GBDT梯度提升決策樹和XGBoost

從決策樹到GBDT(Gradient Boosting Decision Tree)梯度提升決策樹和XGBoost的一些學習筆記

決策樹

決策樹可以轉換成if-then規則的集合,也可以看作是定義在特徵空間劃分類的條件概率分佈。決策樹學習演算法包括三部分:特徵選擇,數的生成和數的剪枝。最大優點: 可以自學習。在學習的過程中,不需要使用者瞭解過多背景知識,只需要對訓練例項進行較好的標註,就能夠進行學習。顯然,屬於有監督學習。
常用有一下三種演算法:

  • ID3 — 資訊增益 最大的準則
  • C4.5 — 資訊增益比 最大的準則
  • CART(Classification and Regression tree, 分類與迴歸樹)
    迴歸樹: 平方誤差 最小 的準則
    分類樹: 基尼係數 最小的準則

迴歸樹 Regression Decision Tree

迴歸樹總體流程類似於分類樹,區別在於,迴歸樹的每一個節點都會得一個預測值。

使用平方誤差最小準則
訓練集為:D={(x1,y1), (x2,y2), …, (xn,yn)}。
輸出Y為連續變數,將輸入劃分為M個區域,分別為R1,R2,…,RM,每個區域的輸出值分別為:c1,c2,…,cm則迴歸樹模型可表示為:

f(x)=m=1McmI(xRm)
接下來可以使用平方誤差xiRm(yif(xi))來表示訓練資料的預測誤差,用最小平方誤差的準則來求解每個單元的最優輸出值。
c^m=ave(yi|xiRm)

假如使用特徵j的取值s來將輸入空間劃分為兩個區域,分別為:
R1(j,s)={x|x(j)<=s}R2(j,s)={x|x(j)>s}
選擇最優切分變數j與切分點s,求解
minj,s[minc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2]
並可以得出
c^1=ave(yi|xiR1(j,s))

c^2=ave(yi|xiR2(j,s))

最小二叉迴歸樹生成演算法:

從以上可以歸納出在最小二叉迴歸樹生成演算法。訓練資料集所在的輸入空間中,遞迴地將每個區域劃分為兩個子區域並決定每個子區域上輸出值,構建二叉決策樹。
1. 選擇最優切分變數j與切分點s,求解