1. 程式人生 > >機器學習:整合學習(ensemble),bootstrap,Bagging,隨機森林,Boosting

機器學習:整合學習(ensemble),bootstrap,Bagging,隨機森林,Boosting

文章目錄

整合學習的樸素思想

整合學習基於這樣的思想:對於比較複雜的任務,綜合許多人的意見來進行決策會比“一家獨大”要更好。換句話說、就是通過適當的方式整合許多“個體模型”所得到的最終模型要比單獨的“個體模型”的效能更優。
我們面臨兩個問題:如何選擇、生成弱分類器和如何對它們進行提升(整合)?
第一種做法期望各個弱分類器之間依賴性不強、可以同時進行生成。這種做法又稱並行方法,其代表為 Bagging,而 Bagging 一個著名的拓展應用便是隨機森林(Random Forest,常簡稱為 RF)。
第二種做法中弱分類器之間具有強依賴性、只能序列生成。這種做法又稱序列方法,其代表為 Boosting,而 Boosting 族演算法中的代表即是AdaBoost。

Bootstrap理論

bootstrap翻譯為自舉,簡單理解為自採樣,通過不斷自採樣模擬真實隨機變數生成的資料集,那麼測試樣本就豐富起來了,這個和資料加強有一定的異曲同工之妙。

Bagging

Bagging全稱為bootstrap aggregating(匯聚),操作過程:使用bootstrap生成M個數據集,使用這些資料集生成M個分類器,最終模型為這M個分類器的簡單組合,要麼投票表決,要麼取平均。
結合 Bagging 的特點、我們可以得出這樣一個結論:對於“不穩定”(或說對訓練集敏感:若訓練樣本稍有改變,得到的從樣本空間到類別空間的對映 g 就會產生較大的變化)的分類器,Bagging 能夠顯著地對其進行提升。

隨機森林

1、用 Bootstrap 生成出 M 個數據集
2、用這 M 個數據集訓練出 M 顆不進行後剪枝決策樹,且在每顆決策樹的生成過程中,每次對 Node 進行劃分時、都從可選特徵(比如說有 d 個)中隨機挑選出 k 個(k≤d)特徵,然後依資訊增益的定義從這 k 個特徵中選出資訊增益最大的特徵作為劃分標準
3、最終模型即為這 M 個弱分類器的簡單組合
一般情況下、推薦取 k = l

o g 2 d k=log_2⁡d

Boosting

Boosting 事實上是一族演算法、該族演算法有一個類似的框架:

  • 1、根據當前的資料訓練出一個弱模型
  • 2、根據該弱模型的表現調整資料的樣本權重。具體而言:
 		讓該弱模型做錯的樣本在後續訓練中獲得更多的關注 			
   		讓該弱模型做對的樣本在後續訓練中獲得較少的關注
  • 3、最後再根據該弱模型的表現決定該弱模型的“話語權”、亦即投票表決時的“可信度”。自然、表現越好就越有話語權。
    在該學習框架下,對於一個學習問題,只要我們找到了一個“弱學習演算法”,就可以把它變成一個“強學習演算法”。這當然是意義深刻的,因為往往比較粗糙的“弱學習演算法”比較好找、而相對精確的“強學習演算法”卻難得一求。