機器學習:提升算法簡介

提升算法概論:

Boosting(提升)是一族可將弱學習器提升為強學習器的算法。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,并將這些分類器進行線性組合,提高分類的性能。

提升算法基于這樣一種思想: 對于一個復雜任務來說,將多個專家的判斷進行適當?shù)木C合所得出的判斷,要比其中任何一個專家單獨判斷好。

強可學習:?

在概率近似正確學習框架(PAC)中,一個概念(類),如果存在一個多項式的學習算法能夠?qū)W習它,并且正確率很高,那么稱這個概念為強可學習的。

弱可學習:

一個概念,如果存在一個多項式的學習算法能夠?qū)W習它,學習的正確率僅僅比隨機猜測略好,那么這個概念為弱可學習。

提升:

Schapire 證明強可學習和弱可學習是等價的,就是在概率近似正確學習框架(PAC)中一個概念強可學習的充分必要條件是這個概念是弱可學習的。

因此,如果發(fā)現(xiàn)了 弱學習 算法,理論上就存在 強學習算法,通常弱學習算法更容易發(fā)現(xiàn),將弱學習算法 轉(zhuǎn)化為強學習算法的方法便是提升。

提升算法基本思路:

從弱分類學習算法出發(fā),反復學習,獲取一系列弱分類器(基本分類器),然后組合這些弱分類器,構成一個強分類器。

提升算法的兩個主要問題:?

? ? ?1. 如何構建弱分類器

? ? ? 2. 如何將弱分類器組合成一個強分類器

圍繞這兩個問題,人們提出了很多提升算法,常見提升算法如下:

常見提升算法

AdaBoost (Adaptive)

? ?1. 提高那些被前一輪弱分類器錯誤分類的樣本的權重,弱化正確分類的權重,這樣一來,后續(xù)分類器重點關注之前分類器未關注到的樣本,分類問題被一系列弱分類器分而治之。

? ?2. 采用加權多數(shù)表決來組合弱分類器。 加大誤差小的分類器權重,減小誤差大的權重。

Boosting Tree() ?提升樹

? ? 以分類樹,回歸樹作為基本分類器(弱分類器),對基本分類器進行線性組合(加法模型),采用前向分步算法。

? ? 對于分類問題采用二叉分類樹,回歸問題采用二叉回歸樹。

? ? 提升算法是統(tǒng)計學習中性能最好的方法之一。

Gradient boosting(GB) ?梯度提升

? ?優(yōu)化算法采用損失函數(shù)的負梯度作為殘差的 近視值。

Gradient boosting Decision Tree(GBDT) ?

? ? GBDT是GB和DT的結合,以決策時作為基函數(shù),梯度提升算法為優(yōu)化算法。

Xgboost ?

? ?XGBoost是提升算法的高效實現(xiàn),在各項機器學習、大數(shù)據(jù)比賽中的效果非常好。

? XGBoost與GBDT主要的不同在于其目標函數(shù)使用了正則項并且利用了二階導數(shù)信息

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容