7. 整合學習(Ensemble Learning)Stacking
阿新 • • 發佈:2018-11-17
1. 整合學習(Ensemble Learning)原理
2. 整合學習(Ensemble Learning)Bagging
3. 整合學習(Ensemble Learning)隨機森林(Random Forest)
4. 整合學習(Ensemble Learning)Adaboost
5. 整合學習(Ensemble Learning)GBDT
6. 整合學習(Ensemble Learning)演算法比較
7. 整合學習(Ensemble Learning)Stacking
1. 前言
到現在為止我們還剩一種整合學習的演算法還沒有涉及到,那就是Stacking。Stacking是一個與Bagging和Boosting都不一樣的演算法。它的主要突破點在如何整合之前的所有演算法的結果,簡單的說就是在弱學習器的基礎上再套一個演算法。
2. Stacking原理
Stacking是在弱學習器的基礎上再套一個演算法,用機器學習演算法自動去結合之前的弱學習器。
Stacking方法中,我們把個體學習器叫做初級學習器,用於結合的學習器叫做次級學習器,次級學習器用於訓練的資料叫做次級訓練集。次級訓練集是在訓練集上用初級學習器得到的。
如下圖所示:
資料集為\(D\),樣本數量為\(m\),分為\(D_{train}\)和\(D_{test}\)。
- Stacking的初級學習器有\(n\)種。
- 對每一個初級學習器進行以下處理。
- 首先對\(D_{train}\)進行5-fold處理。
- 用\(model_i\)
- 同時生成5個\(Predict_{test}\)。
- 最後對輸出進行整理。5個驗證集的輸出組合成次學習器的一個輸入特徵,5個\(Predict_{test}\)取平均
- 這樣就組成了\(m*5\)的維度的次訓練集和\(m*5\)維度的測試集,用次級學習器進行再次訓練。
3. 總結
Stacking的思想也是非常的簡單,但是有時候在機器學習中特徵工程處理的好,簡單的演算法也能發揮強大的作用。
(歡迎轉載,轉載請註明出處。歡迎溝通交流: [email protected])