機器學習算法之GBDT詳解

提升方法(Boosting),是一種可以用來減小監督式學習中偏差的機器學習算法。它是通過訓練多個弱分類器,最後加權組合成一個強分類器。弱分類器一般是指一個分類器它的分類結果僅僅比隨機分類好一點點。

Boosting系列算法最經典的包括AdaBoost算法和GBDT算法。 Boosting是一種遞進的組合方式,每一個新的分類器都在前一個分類器的預測結果上改進,所以說boosting是減少bias而bagging是減少variance的模型組合方式。

偏差又稱爲表觀誤差,是指個別測定值與測定的平均值之差,它可以用來衡量測定結果的精密度高低


AdaBoost算法

AdaBoost,是英文"Adaptive Boosting"(自適應增強)的縮寫,由Yoav Freund和Robert Schapire在1995年提出。它的自適應在於:前一個基本分類器分錯的樣本會得到加強,加權後的全體樣本再次被用來訓練下一個基本分類器。同時,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數 。

具體說來,整個Adaboost 迭代算法就3步:

1、初始化訓練數據的權值分佈。如果有N個樣本,則每一個訓練樣本最開始時都被賦予相同的權值:1/N。

2、訓練弱分類器。具體訓練過程中,如果某個樣本點已經被準確地分類,那麼在構造下一個訓練集中,它的權值就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權值就得到提高。然後,權值更新過的樣本集被用於訓練下一個分類器,整個訓練過程如此迭代地進行下去。

3、將各個訓練得到的弱分類器組合成強分類器。各個弱分類器的訓練過程結束後,加大分類誤差率小的弱分類器的權重,使其在最終的分類函數中起着較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函數中起着較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中佔的權重較大,否則較小。


GBDT算法

GBDT模型是一個集成模型,基分類器採用CART,集成方式爲Gradient Boosting。CART是一個分類迴歸二叉決策樹,在分類時採用最小平方誤差來選擇最優切分特徵和切分點。

GBDT通過多輪迭代,每輪迭代產生一個弱分類器,每個分類器在上一輪分類器的殘差基礎上進行訓練。對弱分類器的要求一般是足夠簡單,並且是低方差和高偏差的。因爲訓練的過程是通過降低偏差來不斷提高最終分類器的精度。
在這裏插入圖片描述
最終的總分類器 是將每輪訓練得到的弱分類器加權求和得到的(也就是加法模型)。

GBDT選擇特徵其實就是CART TREE(是一種二叉樹) 如何生成。CART TREE 生成的過程其實就是一個選擇特徵的過程。假設我們目前總共有 M 個特徵。第一步我們需要從中選擇出一個特徵 j,做爲二叉樹的第一個節點。然後對特徵 j 的值選擇一個切分點 m. 一個 樣本的特徵j的值 如果小於m,則分爲一類,如果大於m,則分爲另外一類。如此便構建了CART 樹的一個節點。其他節點的生成過程和這個是一樣的。

待續…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章