1. 程式人生 > >7. 整合學習(Ensemble Learning)Stacking

7. 整合學習(Ensemble Learning)Stacking

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方法中,我們把個體學習器叫做初級學習器,用於結合的學習器叫做次級學習器,次級學習器用於訓練的資料叫做次級訓練集。次級訓練集是在訓練集上用初級學習器得到的。

如下圖所示:

image

資料集為\(D\),樣本數量為\(m\),分為\(D_{train}\)\(D_{test}\)

  1. Stacking的初級學習器有\(n\)種。
  2. 對每一個初級學習器進行以下處理。
    1. 首先對\(D_{train}\)進行5-fold處理。
    2. \(model_i\)
      進行5-fold訓練,對驗證集進行\(Predict\)
    3. 同時生成5個\(Predict_{test}\)
    4. 最後對輸出進行整理。5個驗證集的輸出組合成次學習器的一個輸入特徵,5個\(Predict_{test}\)取平均
  3. 這樣就組成了\(m*5\)的維度的次訓練集和\(m*5\)維度的測試集,用次級學習器進行再次訓練。

3. 總結

Stacking的思想也是非常的簡單,但是有時候在機器學習中特徵工程處理的好,簡單的演算法也能發揮強大的作用。

(歡迎轉載,轉載請註明出處。歡迎溝通交流: [email protected]