集成學習(Ensemble Learning)
標籤(空格分隔): 機器學習
Adabost
對於一些弱分類器來說,如何通過組合方法構成一個強分類器。一般的思路是:改變訓練數據的概率分佈(權值分佈),針對不同的訓練數據分佈調用弱學習算法學習一系列的弱分類器,然後將他們組合起來,形成強分類器。
需要解決的問題有:
- 在每一輪如何改變訓練數據的權值或概率分佈?
- 如何將若分類器組合成一個強分類器。
已知數據集
1. 初始化訓練數據集
2. 使用帶有權值分佈的數據集
3. 計算分類器
4. 計算每個分類器的係數:
5. 根據下式更新數據集分佈
(通過上式計算,可以使被基本分類器
6. 最終分類器爲:
梯度提升(Gradient Boosting)
與Adaboost不同的是,每一步的弱預測模型生成都是依據損失函數的梯度方向,則稱之爲梯度提升。
梯度提升算法首先給定一個目標損失函數,它的定義域是所有可行的弱函數集合(基函數);
提升算法通過迭代的選擇一個扶梯度方向上的基函數來逐漸逼近局部極小值。
首先,給定輸入向量x和輸出變量y組成的若干訓練樣本
- 給定常函數
F0(x): F0(x)=argminγ∑ni=1L(yi,γ) 對於m=1 到 M
a. 計算僞殘差rim=[∂L(yi,F(xi))∂F(xi)]F(x)=Fm−1(x) ;
b. 使用數據{(xi,rim)}ni=1 計算擬合殘差的基函數fm(x) ;
c. 計算步長γm=argminγ∑ni=1L(yi,Fm−1(xi)−γ∗fm(xi)) ;更新模型
Fm(x)=Fm−1(x)−γmfm(xi) .