統計學習方法-李航(第8章 提升方法筆記)
這一章主要講boosting提升方法,代表方法是AdaBoost演算法,我會從演算法的本質去解釋演算法,儘量用簡單的語言其描述,具體推導過程參考原文。
提升方法就是從弱學習演算法出發,反覆學習,得到一系列弱分類器(又稱為基本分類器),然後組合這些弱分類器,構成一個強分類器。
一、 提升方法AdaBoost(AdaptiveBoosting)演算法
第一部分主要簡述演算法的過程,這個演算法的本質是把訓練好的一些弱分類器整合起來,達到一個好的效果。演算法的關鍵是點是樣本權重的修改,以及各個過分類如何加權整合。
樣本權重:AdaBoost的做法是,提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。這樣一來,那些沒有得到正確分類的資料,由於其權值的加大而受到後輪的弱分類器的更大關注。於是,分類問題被一系列的弱分類器“分而治之”。
弱分類器的組合:AdaBoost採取加權多數表決的方法。具體地,加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用,減小分類誤差率大的弱分類器的權值,使其在表決中起較小的作用
二、 AdaBoost演算法的訓練誤差分析
這裡推匯出來AdaBoost的訓練誤差是以整合弱分類器個數指數速率下降。這也是演算法廣泛應用的原因。
三、AdaBoost演算法的解釋
這裡解釋了AdaBoost演算法是前向分步加法演算法的特例。這時,模型是由基本分類器組成的加法模型,損失函式是指數函式。
同時這裡用數學公式解釋了AdaBoost裡面樣本權重更新以及弱分類器整合權重公式的由來。就是最小化誤差函式計算得到。
四、提升樹:提升樹是以分類樹或迴歸樹為基本分類器的提升方法。(簡單說就是用提升方法,把決策樹整合起來)
1,提升樹模型:提升方法實際採用加法模型(即基函式的線性組合)與前向分步演算法。以決策樹為基函式的提升方法稱為提升樹(boosting tree)。對分類問題決策樹是二叉分類樹,對迴歸問題決策樹是二叉迴歸樹。
2,提升樹演算法:提升樹演算法採用前向分步演算法。不同問題的提升樹學習演算法主要區別在於使用的損失函式不同。包括用平方誤差損失函式的迴歸問題,用指數損失函式的分類問題,以及用一般損失函式的一般決策問題。
二類分類問題:提升樹演算法只需將AdaBoost演算法中的基本分類器限制為二類分類樹即可,是AdaBoost演算法的特殊情況。
迴歸問題的提升樹演算法:求解經驗風險極小化的問題只需簡單地擬合當前模型的殘差(也就是去擬合當前模型的殘差)
3,梯度提升:當損失函式是平方損失和指數損失函式時,每一步優化是很簡單的,此時的提升樹利用加法模型與前向分步演算法實現學習的優化過程。當一般損失函式而言,這樣並不容易,採用最速下降法的近似方法,其關鍵是利用損失函式的負梯度在當前模型的值作為殘差的近似值。