機器學習算法-Boosting 方法簡介


Boosting 是一族可將弱學習器提升為強學習器的算法。
關於 Boosting 的兩個核心問題:
1.在每一輪如何改變訓練數據的權值或概率分布?
通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣本的權值,而誤分的樣本在后續受到更多的關注.
2、通過什么方式來組合弱分類器?
通過加法模型將弱分類器進行線性組合,比如 AdaBoost 通過加權多數表決的方式,即增大錯誤率小的分類器的權值,同時減小錯誤率較大的分類器的權值。
而提升樹通過擬合殘差的方式逐步減小殘差,將每一步生成的模型疊加得到最終模型。
常見的 Boosting 算法: AdaBoost,梯度提升決策樹 GBDT,XgBoost 以及LightGBM
 
一、AdaBoost 算法:
思想:
1、在每輪的迭代中,提高那些前一輪弱分類器分類錯誤樣本的權值降低那些被正確分類樣本的權值,這樣一來,那些沒有得到正確分類的數據,由於其權值加大后受到后一輪若分類器的更大關注,於是,分類問題被一系列弱分類器分而治之。
2、采用加權多數表決的方法來組合各個弱分類器,具體地說,加大分類誤差率小的弱分類器的權值,使其在表決中起到較大的作用,減小分類誤差率大的弱分類器的權值,使其在表決中起到較小的作用。
 
從前向分布算法的思路推到Adaboost:

 

 

 

AdaBoost 算法是前向分步加法算法的特例,這時,模型是由基本分類器組成的加法模型,損失函數是指數函數。 前向分步算法會逐一學習每個基函數,這一過程與 AdaBoost 算法逐一學習基本分類器的過程一致。
AdaBoost 算法的損失函數為指數函數,其形式如下:

 

二、梯度提升決策樹(GBDT)

 1 提升樹-boosting tree
以決策樹為基函數的提升方法稱為ᨀ升樹,其決策樹可以是分類樹或者回歸樹。提升樹模型可以表示為決策樹的加法模型。

 

針對不同的問題的提升樹算法主要的區別就在於損失函數的不同,對於回歸問題來說,我們使用的是平方損失函數,對於分類問題來說,我們使用的是指數損失函數。對二分類問題來說,提升樹算法只需將 AdaBoost 的基分類器設置為二分類樹即可,可以說此時的提升樹算法時 AdaBoost 算法的一個特例。

 

對於回歸問題的提升樹算法來說,我們每一步主要擬合的是前一步的殘差,為什么是殘差,看下面的公式推導:

 

 

  其中r代表的就是殘差。
回歸問題中的提升樹算法如下:

 

2.梯度提升-Gradient Boosting

梯度提升的思想借鑒於梯度下降法,我們先來回顧一下梯度下降法。對於優化問題:min(f(w)):

 

 

基於GBDT 的兩個部分,提升樹和梯度提升之后,得到GBDT(基模型為cart提升樹)的思路為:

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM