機器學習 xgboost演算法過程推導

2021-09-29 15:35:15 字數 1507 閱讀 7102

xgboost是boosting演算法的其中一種,該演算法思想就是不斷地新增樹,不斷地進行特徵**來生長一棵樹,每次新增乙個樹,其實是學習乙個新函式,去擬合上次**的殘差。具體的目標函式如下:

主要就是找到ft來優化這一目標函式,通過乙個簡單的例子來形象的理解該目標函式。例如是小明真實有100個糖果,現在建立乙個決策系統來**小明有多少個糖。首先建立一棵樹,記為樹1,它的**結果是90個,這時得到乙個殘差,這個殘差值就是100-90=10,此時和真實值差別是10。為了提高精度,可以在該決策系統中再新增一棵樹,記為樹2。樹2就是為了彌補上一棵樹存在的殘差,假設它的**結果是5,此時總體的殘差值是10-5=5,即和真實值相差為5。符號化表示:之前的結果10表示為輸出結果為yˆ1 ,即上一時刻的殘差值,樹2的值為f2 ,此時得到的值。接著可以再建立第三課樹,記為樹3。假設它的**值為3,此時總體的殘差值是5-3=2,即和真實值相差為2。符號化表示:上一時刻輸出結果5為yˆ2 ,即上一時刻的殘差值,樹3為f3 ,此時得到值。xgboost的目標就是通過找到ft 來優化這一目標函式,使得最終結果足夠小。下面對該函式進行推導化簡。

1、預備知識,泰勒展開式。主要使用泰勒展開式來近似原來的目標函式

2、推導過程:

3 目標函式轉換

使得式(8)最小,令

得到

將(10)代入(9)得到:

舉例說明:下圖公有5個樣本,三個葉子結點,計算的目標函式如下,最終的目標是得到最小值:

如何找到最佳的分支切割點,如上圖所示。如何選取合適的a點分割,使目標函式值變小。這裡是基於式(11),得到分支增益的公式:

選取是gain最小的切割點進行分支。

機器學習 xgboost

xgb中引數分為三類 1.通用引數 2.整合引數 3.任務引數 1 隨機森林在ligthgbm 有很多整合演算法 中有,裡面更全。2 xgboost 裡面有gdbt是樹的串型疊加的各種包,梯度增強的方法 裡面沒有隨機森林包。xgboost是乙個支援多種資料格式的庫。libsvm資料儲存格式,xgbo...

XGBoost 學習過程

最近開始入手學習python處理資料,在看 的時候發現了xgboost,並且作為第三方庫在pycharm中無法匯入,很是一籌莫展,那就從部落格上搜尋開始入手,首先了解這個庫到底是完成了什麼事情呢。下面開始據此對xgboost的原理做簡單的介紹 xgboost 1 是2014年2月誕生的專注於梯度提公...

機器學習 Xgboost 對比

引數解釋 實戰 原理 調參步驟 對比 這篇寫的比較好。eta學習率的解釋 你可以是幾個回歸樹的葉子節點之和為 值,也可以是加權,比如第一棵樹 值為3.3,label為4.0,第二棵樹才學0.7,再後面的樹還學個鬼,所以給他打個折扣,比如3折,那麼第二棵樹訓練的殘差為4.0 3.3 0.3 3.01,...