目錄
1 提升方法Adaboost算法
1.1提升方法的基本思路
對分類問題而言,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)要比求精確的分類規則(強分類器)容易得多。提升發方法就是從弱學習算法出發,反覆學習,得到一系列的弱分類器,然後組合這些弱分類器,構成一個強分類器。
對於提升方法來說,有兩個問題需要解決:
1.在每一輪如何改變訓練數據的權值或概率分佈?
AdaBoost的做法是,提高那些被前一輪弱分類器錯誤分類的樣本的權值,而降低那些被正確分類樣本的權值。這樣一來,那些沒有正確分類的數據,由於權值的加大而收到後一輪的弱分類器的更大關注。
2.如何講弱分類器組合成一個強分類器?
AdaBoost採用加權多數表決的方法,具體是,加大分類誤差率小的弱分類器的權值,使其在表決中起較大作用;減小分類誤差率大的弱分類器的權值,使其在表決中起較小的作用。
1.2 AdaBoost算法
標準的AdaBoost算法只適用於二分類任務。
由此可知,被基本分類器誤分類樣本的權值得以擴大,而被正確分類的樣本的權值卻得以縮小。
2 AdaBoost算法解釋
2.1 前向分步算法
通常這是一個複雜的優化問題。前向分步算法求解這一優化問題的思路是:如果能從前向後,每一步只學習一個基函數及其係數,逐步逼近優化目標函數,那麼就可以簡化優化的複雜度。具體的,每一步只需優化如下損失函數:
3 提升樹
提升樹是以分類樹或迴歸樹爲基本分類器的提升方法。
3.1 提升樹模型
提升方法實際採用加法模型(基函數的線性組合)與前向分佈算法。以決策樹爲基函數的提升方法稱爲提升樹。
某些分類器可以看作是由一個根節點直接連接兩個葉結點的簡單決策樹,即所謂的決策樹樁。
提升樹模型可以表示爲決策樹的加法模型:
3.2 提升樹算法
對於二類分類問題,提升樹算法只需要將AdaBoost算法中的基本分類器限制爲二類分類樹即可。
下面敘述迴歸問題的提升樹。
迴歸問題提升樹使用以下前向分步算法:
是當前模型擬合數據的殘差。所以,對迴歸問題的提升樹算法來說,只需要簡單地擬和當前模型的殘差。
擬合殘差,學習一個迴歸樹,得到。
接下來更新,如此往復。
最後得到迴歸問題的提升樹:
3.3 梯度提升
提升樹利用加法模型和前向分步算法實現學習的優化過程。對一般損失函數而言,往往每一步優化並不那麼容易。針對這一問題,提出梯度提升算法。
這是利用最速下降法的近似方法,其關鍵是利用損失函數的負梯度在當前模型的值
作爲迴歸問題提升樹算法中的殘差的近似值,擬合一個迴歸樹。