集成學習(Ensemble Learning)

集成學習(Ensemble Learning)

標籤(空格分隔): 機器學習


Adabost

對於一些弱分類器來說,如何通過組合方法構成一個強分類器。一般的思路是:改變訓練數據的概率分佈(權值分佈),針對不同的訓練數據分佈調用弱學習算法學習一系列的弱分類器,然後將他們組合起來,形成強分類器。
需要解決的問題有:

  • 在每一輪如何改變訓練數據的權值或概率分佈?
  • 如何將若分類器組合成一個強分類器。

已知數據集T={(x1,y1),(x2,y2),...,(xn,yn)}
1. 初始化訓練數據集T 的權值分佈:D1={w11,w12,...,w1n} ,則預測的損失函數爲:J=ni=1w1iL(y^iyi) ;
2. 使用帶有權值分佈的數據集D1 學習,得到一個基本分類器:G1(x) ;
3. 計算分類器G1(x) 在訓練數據集上的分類誤差率:ϵ1=ni=1w1iI(G1(xi)yi) ;(該分類錯誤率 爲)
4. 計算每個分類器的係數:α1=12ln1ϵ1ϵ1 .
5. 根據下式更新數據集分佈Dm : (wmi 爲第m個分類器中每個數據i的權重)

wmi={wmiZmeαm,wmiZmeαm,Gm(xi)=yi Gm(xi)yi 

(通過上式計算,可以使被基本分類器Gm 正確分類的樣本的權值減小,而錯誤分類的樣本權值增大)
6. 最終分類器爲:G(x)=sign(Mm=1αmGm(x))

梯度提升(Gradient Boosting)

與Adaboost不同的是,每一步的弱預測模型生成都是依據損失函數的梯度方向,則稱之爲梯度提升。

梯度提升算法首先給定一個目標損失函數,它的定義域是所有可行的弱函數集合(基函數);
提升算法通過迭代的選擇一個扶梯度方向上的基函數來逐漸逼近局部極小值。

首先,給定輸入向量x和輸出變量y組成的若干訓練樣本{(x1,y1),(x2,y2),...,(xn,yn)} ,目標是找到近似函數F^(x) ,使得損失函數L(y,F(x)) 的損失值最小。

  1. 給定常函數F0(x): F0(x)=argminγni=1L(yi,γ)
  2. 對於m=1 到 M
    a. 計算僞殘差rim=[L(yi,F(xi))F(xi)]F(x)=Fm1(x) ;
    b. 使用數據{(xi,rim)}ni=1 計算擬合殘差的基函數fm(x) ;
    c. 計算步長γm=argminγni=1L(yi,Fm1(xi)γfm(xi)) ;

  3. 更新模型Fm(x)=Fm1(x)γmfm(xi) .

發佈了45 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章