GBDT的基本原理

2021-09-06 21:41:51 字數 2441 閱讀 1573

這裡以二元分類為例子,給出最基本原理的解釋

gbdt 是多棵樹的輸出**值的累加

gbdt的樹都是

回歸樹而不是分類樹

分類樹

**的時候選取使得誤差下降最多的**

計算的技巧

最終**收益按照下面的方式計算,注意圓圈內的部分是固定值

gbdt 二分類

gbdt在實現中可以完全復用上面的計算方法框架,只是我們的優化的目標函式不同。

這裡使用的是

指數誤差函式,不管是**正確還是錯誤

誤差值都存在,但是正確的**

會使得誤差值小於錯誤的**

參考adaboost and the super bowl of classi

關於常用誤差函式

參考

4.4節關於二分類情況誤差函式的設計

這裡其實和上面給出的一樣,只是增加了 log(1 +, 另外多了乙個2,2yf), 參考前面的lossfunction 

的推導,其實這個應該算作logloss或者說是logistic regression, cross entropy error,也就是從probablity出發的logloss推導到output f(x)的表示就是上面的

式子,而它看上去剛好就是乙個指數誤差函式。

嚴格意義上說是logloss不是指數誤差 不過logloss和指數誤差看上去比較相似。

值其實就是邏輯回歸的思路,類似

語音語言處理一書

27頁解釋,線性加權的值(output)用來**

p(true)和p(false)

的比例的

log值(回歸值是實數範圍取值不適合**0-1,做了乙個轉換),越是接近

true

,那麼f(x)

越接近+無窮(對應最大可能性判斷true),

p(false)

越大那麼越接近-無窮(對應最大可能性判斷false)

f(x) 對應 

feature x

當前的回歸**值

也就是多棵樹經過決策到達葉子節點的輸出值

output(x)

的累加值。

n個樣本則

f(x)n

個維度,當開始沒有**的時候所有樣本在乙個節點則所有

f(x)

對應乙個相同的值,**一次後兩個葉子節點則

f(x)

對應可能到不同的葉子節點從而可能有兩個不同的值。

對誤差函式計算關於f的梯度,誤差函式是

變數是f(x)

考慮learning_rate之後是

f(x) 對應

葉子節點中乙個樣本對應它的feature x 當前的**值

參考機器學習概率角度

一書的16章

我們的**目標從上面回歸樹基本演算法中的希望逼近y 變成了

逼近梯度值 r_im,

也就是說當前樹是**負梯度值的。

f_m(x) = f_m-1(x) + learning_rate*(當前樹的**值(也就是**負梯度..)) //@todo check

再對比下ng課件最簡單的梯度下降

針對regression的例子

我們採用的每顆樹更新策略是針對f(x)的,而f(x)沿著梯度的方向的累加,目標是使得我們的

誤差函式達到最小。

GBDT的基本原理

gbdt 是多棵樹的輸出 值的累加 gbdt的樹都是 回歸樹 而不是分類樹 分類樹 的時候選取使得誤差下降最多的 計算的技巧 最終 收益按照下面的方式計算,注意圓圈內的部分是固定值 gbdt 二分類 gbdt在實現中可以完全復用上面的計算方法框架,只是我們的優化的目標函式不同。這裡使用的是 指數誤差...

GBDT的基本原理

這裡以二元分類為例子,給出最基本原理的解釋 gbdt 是多棵樹的輸出 值的累加 gbdt的樹都是 回歸樹 而不是分類樹 分類樹 的時候選取使得誤差下降最多的 計算的技巧 最終 收益按照下面的方式計算,注意圓圈內的部分是固定值 gbdt 二分類 gbdt在實現中可以完全復用上面的計算方法框架,只是我們...

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...