目錄html
更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
梯度提高樹(gradien boosting decision tree,GBDT)在工業上用途普遍,屬於最流行、最實用的算法之一,梯度提高樹能夠當作是提高樹的優化版。算法
梯度提高樹其實流程和提高樹差很少,可是在損失函數擬合方面,提高樹損失函數擬合用的是平方損失,而梯度提高樹則是使用損失函數的負梯度來擬合本輪損失的近似值,進而擬合一個迴歸樹。數據結構
第\(t\)輪第\(i\)樣本的損失函數的負梯度表示爲
\[ r_{ti}=-{[\frac{\partial{L(y_i,f(x_i))}}{\partial{f(x_i)}}]}_{f(x)=f_{t-1}(x)} \]
利用\((x_i,r_{ti}),\quad(i=1,2,\cdots,m)\),咱們能夠擬合一顆CART迴歸樹,獲得了第\(t\)棵迴歸樹,它對應的葉節點區域爲\(R_{tj},\quad(j=1,2,\cdots,J)\),其中\(J\)爲葉子節點數。機器學習
有\(m\)個數據\(n\)個特徵的訓練數據集\(T=\{(x_,y_1),(x_2,y_2),\cdots,(x_m,y_m)\}\),損失函數爲\(L(y,f(x))\)。函數
迴歸樹\(\hat{f(x)}\)。學習
梯度提高樹雖然在某種程度解決了提高樹對於分類和迴歸問題使用不一樣的損失函數的問題,而且使用損失函數的負梯度做爲提高樹算法殘差值的近似值,提高了模型的準確度,可是他還沒法作到並行。下面介紹的XgBoost做爲GBDT的升級版,將會解決這個問題。優化