一、前述
AdaBoost演算法和GBDT(Gradient Boost Decision Tree,梯度提升決策樹)演算法是基於Boosting思想的機器學習演算法。在Boosting思想中是通過對樣本進行不同的賦值,對錯誤學習的樣本的權重設定的較大,這樣,在後續的學習中集中處理難學的樣本,最終得到一系列的預測結果,每個預測結果有一個權重,較大的權重表示該預測效果較好。
二、具體原理
AdaBoost,是英文"Adaptive Boosting"(自適應増強)的縮寫,由Yoav Freund和Robert Schapire在1995年提出。它的自適應在於:前一個基本分器分錯的樣本會得到加強,加權後的全體樣本再次被用來訓練、下一個基本分類器。同時,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率或達到預先指定的最大迭代次數。
1、演算法過程
1. 初始化訓練資料的權值分佈。如果有 N 個樣本,則每一個訓練樣本最開始時都被賦予相同的權重:1/ N
2. 訓練弱分類器。具體訓練過程中,如果某個樣本點已經被準確地分類,那麼在構造下一個訓練集中,它的權重就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權重就得到提高。然後,權重更新過的樣本集被用於訓練下一個類器,整個訓練過程如此迭代地進行下去。
3. 將各個訓練得到的弱分類器組合成強分類器。各個弱分類器的訓練過程結束後,加大分類誤差率小的弱分類器的權重,使其在最終的分類函式中起著較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函式中起著較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中佔的權重較大,否則較小。
2、具體過程
給定一個訓練資料集 T ={( x 1, y 1), ( x 2, y 2)...( xN , yN )},其中例項 ;r e 義, yi 屬於標記集合{-1, + 1}, Adaboost 的目的就是從訓練資料中學習一系列弱分類器或基本分類器,然後從這些弱分類器組合成一個強分類器。
Adaboost 的演算法流程如下:
三、案例分析