AdaBoost、GBDT、XGBoost處理迴歸問題及分類問題

1、迴歸問題
1.1 AdaBoost(建立一顆串行的樹)
AdaBoost,是英文"Adaptive Boosting"(自適應增強)的縮寫,由Yoav Freund和Robert Schapire在1995年提出。它的自適應在於:前一個基本分類器分錯的樣本會得到加強,加權後的全體樣本再次被用來訓練下一個基本分類器。同時,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數。

具體說來,整個Adaboost 迭代算法就3步:

初始化訓練數據的權值分佈。如果有N個樣本,則每一個訓練樣本最開始時都被賦予相同的權值:1/N。
訓練弱分類器。具體訓練過程中,如果某個樣本點已經被準確地分類,那麼在構造下一個訓練集中,它的權值就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權值就得到提高。然後,權值更新過的樣本集被用於訓練下一個分類器,整個訓練過程如此迭代地進行下去。
將各個訓練得到的弱分類器組合成強分類器。各個弱分類器的訓練過程結束後,加大分類誤差率小的弱分類器的權重,使其在最終的分類函數中起着較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函數中起着較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中佔的權重較大,否則較小

在這裏插入圖片描述

流程:
在這裏插入圖片描述
1.2 GBDT(建立一個串行的樹)
GBDT每一次的計算是都爲了減少上一次的殘差,進而在殘差減少(負梯度)的方向上建立一個新的模型。
目標函數:GBDT選取了相對來說容易優化的損失函數——平方損失。GBDT使用的平方損失,經過負梯度擬合得到了y−f(xi)),這就是我們最終要去擬合的,它的另一個名字叫作殘差
在這裏插入圖片描述
1.2 XGBoost(建立一個串行的樹)
類似於GBDT,目標函數有所改變
目標函數:平方損失
在這裏插入圖片描述

2、分類問題
2.1 AdaBoost(建立一個串行的樹)
目標函數:指數損失函數(exp(-y*f(x)))在這裏插入圖片描述
2.2 GBDT(建立多顆串行的樹,經過softmax)
目標函數:對數損失函數
在這裏插入圖片描述
在這裏插入圖片描述
2.3 XGBoost(建立多顆串行的樹,經過softmax)
目標函數:對數損失函數
在這裏插入圖片描述
3.總結:
3.1、Adaboost與GBDT兩者boosting的不同策略是兩者的本質區別。
3.2、Adaboost強調Adaptive(自適應),通過不斷修改樣本權重(增大分錯樣本權重,降低分對樣本權重),不斷加入弱分類器進行boosting。
3.3、而GBDT則是旨在不斷減少殘差(迴歸),通過不斷加入新的樹旨在在殘差減少(負梯度)的方向上建立一個新的模型。——即損失函數是旨在最快速度降低殘差。
3.4、而XGBoost的boosting策略則與GBDT類似,區別在於GBDT旨在通過不斷加入新的樹最快速度降低殘差,而XGBoost則可以人爲定義損失函數(可以是最小平方差、logistic loss function、hinge loss function或者人爲定義的loss function),只需要知道該loss function對參數的一階、二階導數便可以進行boosting,其進一步增大了模型的泛華能力,其貪婪法尋找添加樹的結構以及loss function中的損失函數與正則項等一系列策略也使得XGBoost預測更準確。
3.5、XGBoost的具體策略可參考本專欄的XGBoost詳述。 GBDT每一次的計算是都爲了減少上一次的殘差,進而在殘差減少(負梯度)的方向上建立一個新的模型。
3.6、XGBoost則可以自定義一套損失函數,藉助泰勒展開(只需知道損失函數的一階、二階導數即可求出損失函數)轉換爲一元二次函數,得到極值點與對應極值即爲所求。

4、對數損失與交叉熵的區別
在這裏插入圖片描述
交叉熵和對數損失函數之間的關係

交叉熵中未知真實分佈 p(x)相當於對數損失中的真實標記 y,尋找的近似分佈 q(x)相當於我們的預測值。如果把所有樣本取均值就把交叉熵轉化成了對數損失函數。
參考:https://blog.csdn.net/hellozhxy/article/details/82143554
https://blog.csdn.net/randompeople/article/details/95042487
https://www.cnblogs.com/jiangxinyang/p/9248154.html
https://www.cnblogs.com/always-fight/p/9400346.html
https://www.jianshu.com/p/15c82ec2d66d

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章