#####跟我一起學梯度提升
梯度提升是建立預測模型的一種強大技術。
####1.提升的起源
提升的思路來源於一個弱學習器是否能夠被改良爲更強的學習器。
弱假設/弱學習器——其猜測性能只比隨機猜測稍好。
提升的思想是通過對觀察樣本進行過濾,保留可以讓弱學習器處理的樣本,以便集中於開發下一階段的弱學習器來處理其餘困難樣本。
####2.AdaBoost ——第一個提升算法
AdaBoost中的弱學習器採用的是單分裂決策樹。
提升過程——主要做法是進行樣本加權,對難以分類的實例分配更大權重,對那些能夠很好被處理的實例就分配更小的權重。
新的弱學習器以一種序列化的方式被添加進來,集中針對上一步篩選出來的困難樣本進行訓練。
預測過程——模型的最終預測是由多個弱學習器的多數投票做出的,投票權重即爲各自的準確率。
####3.AdaBoost的推廣
布賴曼首先在統計框架中,將AdaBoost和相關算法進行重鑄,這一系列算法就被稱爲電弧算法。然後被弗里曼進一步發展爲梯度提升機,再後來就簡稱爲梯度提升、梯度樹提升。
統計框架將Boosting過程重鑄爲數值優化問題,通過使用梯度下降的過程來添加弱學習器,以期最大程度地減小模型的損失。
這類算法被描述爲逐階段加法模型,這是因爲一次只添加一個新的弱學習器,並且模型中的現有弱學習器在下一階段的學習過程中被凍結。
被推廣之後就可以使用任意的可微損失函數,將原來主要針對的二分類問題拓展到迴歸以及多類別分類領域。
####4.梯度提升是如何工作的???
梯度提升過程涉及三個要點——損失函數、弱學習器以及一個加法模型(如何在保證梯度會下降的前提下,添加新的弱學習器)。
###4.1損失函數
採用什麼損失函數取決於實際問題,但它必須是可微的,很多較典型的損失函數都可以使用,在滿足可微前提,也可以自定義新的損失函數。
可微——參照微積分來理解,損失函數可微即表示任何一個訓練實例,都能保證梯度向着最小化趨勢進行微調,這樣學習到的模型纔是健壯的。
###4.2弱學習器
決策樹算是一種常用於梯度提升模型中的弱學習器。此外,迴歸樹也常用作實值輸出模型的分裂樁(樹),多個迴歸樹的輸出還可以疊加,新添加進來的迴歸樹就可以進行殘差矯正。
###4.3加法模型
通過前面我們知道,逐階段加法模型一次只添加一個新的樹,同時模型中的現有樹在下一階段的學習中其參數被凍結,添加新樹的前提是梯度要下降。
傳統意義上的梯度下降過程用於最小化一個參數集合,比如迴歸權重,權重就向着使模型預測誤差最小的方向微調,這種我們可以稱之爲參數化梯度下降。
而在組合學習領域,新的弱學習器就向着使模型預測誤差最小的方向被添加進來,從宏觀層面這種我們可以稱之爲函數化梯度下降。微觀上,再進一步在新的弱學習器內進行參數化梯度下降。
####5.改進
梯度提升本質上是一種貪婪算法,容易很快就在訓練數據集上達到過擬合,就必須使用一些恰當的正則化手段,以期提高其性能。
原始梯度提升模型的幾種改進——樹約束、縮減、隨機採樣、懲罰學習