1. 程式人生 > 實用技巧 >整合學習:bagging、 boosting、stacking

整合學習:bagging、 boosting、stacking

一、什麼是整合學習

整合學習通過構建並結合多個學習器來完成學習任務。要獲得好的整合,學習器之間要具有差異性。

一. 整合學習的三大類:

  • 個體學習器間不存在強依賴關係、可同時生成的,用於減少方差的 bagging,如 Random Forest
  • 個體學習器間存在強依賴關係、必須序列生成的,用於減少偏差的 boosting, 如 Adaboosting
  • 用於提升預測結果的stacking,投票機制

1. Bagging – 降低方差

Bagging使用裝袋取樣來獲取資料子集訓練基礎學習器。最常用的整合演算法原模型是隨機森林。
演算法過程如下:

  1. 從原始樣本集中抽取訓練集。每輪從原始樣本集中有放回的抽樣(可能抽到重複的樣本),抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中).共進行k輪抽取,得到k個訓練集.(k個訓練集相互獨立
  2. 每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型,所有弱分類器的權重相等
  3. 對分類任務使用投票的方式整合,而回歸任務通過平均的方式整合。
    在這裡插入圖片描述

在隨機森林中,每個樹模型都是裝袋取樣訓練的。另外,特徵也是隨機選擇的,最後對於訓練好的樹也是隨機選擇的。這種處理的結果是隨機森林的偏差增加的很少,而由於弱相關樹模型的平均,方差也得以降低,最終得到一個方差小,偏差也小的模型。

在這裡插入圖片描述

2. boosting – 降低偏差

  • Boosting指的是通過演算法集合將弱學習器轉換為強學習器。主要原則是訓練一系列的弱學習器,訓練的方式是利用加權的資料。對於錯分資料給予較大的權重每一輪的訓練集不變
  • 加法模型將弱分類器進行線性組合,比如AdaBoost通過加權多數表決的方式,即增大錯誤率小的分類器的權值,同時減小錯誤率較大的分類器的權值

對於訓練好的弱分類器,如果是分類任務按照權重進行投票,而對於迴歸任務進行加權,然後再進行預測。
在這裡插入圖片描述

3. stacking

Stacking是通過一個元分類器或者元迴歸器來整合多個分類模型或迴歸模型的整合學習技術。
基礎模型利用整個訓練集做訓練,元模型將基礎模型的特徵作為特徵進行訓練。
在這裡插入圖片描述