【機器學習】Bagging與隨機森林原理與算法描述

1.Bagging原理

在介紹Bagging之前,我們首先介紹下自助採樣法(Bootstrap sampling)。

自助採樣法的原理如下:對給定米個樣本的數據集,進行米隨機有放回採樣,得到含米個樣本的採樣集,初始訓練集中約有63.2%的樣本出現在採樣集中。

Bagging(Bootstrap aggregating)正是直接基於自助採樣法採樣出Ť個含米個樣本的採樣集,然後基於每個採樣集分別訓練出一個基學習器,再將這些基學習器進行結合。在對預測輸出進行結合時,Bagging通常對分類任務使用簡單投票法,對迴歸任務使用簡單平均法(簡單即每個基學習器都使用相同權重的投票平均)。

那麼問題來了,爲什麼要進行自助採樣呢?

想要得到泛化能力強的集成,個體學習器應該儘可能“好而不同”。可以簡單地將原始數據集分成Ť個子集,用來訓練Ť個個體學習器,每個子集各不相同,得到的個體學習器具有較大的差異;但是每個子集只佔原始數據集的一小部分,不足以進行有效學習,個體學習器的預測能力差。因此,我們利用自助採樣法得到相互有交疊的採樣子集用來訓練個體學習器,以得到較強的泛化能力。

2.包外估計

由於每個個體學習器都只使用了初始訓練集中約63.2%的樣本,剩下的樣本可用作驗證集來對泛化性能進行包外估計(out-of-bag estimate)。

對每個個體學習器H T而言,有36.8%的樣本沒有用來訓練,稱爲該學習器的包外估計樣本。令D_T表示個體學習器H T所使用的訓練樣本集,{H ^ {oob}} \ left(x \ right)表示對樣本X的包外預測。包外估計方法如下:

        1.對數據集d中的每個樣本X,計算它作爲包外樣本的個體學習器對該樣本的分類情況;

        2.以簡單多數表決方法得到樣本X的包外預測結果:

                                           {H^{oob}}\left( x \right) = \mathop {\arg \max }\limits_{y \in \kappa } \sum\limits_{t = 1}^T {I\left( {{h_t}\left( x \right) = y} \right) \cdot I\left( {x \notin {D_t}} \right)}

        3.最後用所有包外預測不等於真實標記的誤分個數佔樣本總數的比例作爲包外估計,則Bagging的泛化誤差的包外估計爲:

                                           H^{^{oob}} = \frac{1}{{\left| D \right|}}\sum\limits_{\left( {x,y} \right) \in D} {I\left( {{H^{oob}}\left( x \right) \ne y} \right)}

3. Bagging算法描述


輸入:訓練集d,基學習算法\ mathfrak {L},基學習器個數Ť

過程:

        \ begin {array} {* {20} {c}} {for}&{t = 1,2,\ ldots,T}&{do} \ end {array}

                1.採樣自助得到含米個樣本的採樣集{} D_T;

                2.用採樣集{} D_T訓練第Ť個基學習器{h_t} = {\ mathfrak {L}} \ left({{D_t}} \ right)

輸出:

      H \ left(x \ right)= \ mathop {\ arg \ max} \ limits_ {y \ in \ kappa} \ sum \ limits_ {t = 1} ^ T {I \ left({{h_t} \ left(x \ right)= y} \ right)}(分類任務)或H \ left(x \ right)= \ frac {1} {T} \ sum \ limits_ {t = 1} ^ T {{h_t} \ left(x \ right)}(迴歸任務)。


4.隨機森林原理

Bagging主要關注降低方差,因此它在不剪枝決策樹,神經網絡等易受樣本擾動的學習器上效用更爲明顯,最着名的是隨機森林(Random forest)算法。

隨機森林(Random forest,RF)是Bagging的一個擴展變體,RF與Bagging的不同之處在於:

        1. Bagging的基學習器不一定是同質的,也不一定是決策樹;但RF以CART爲基學習器。

        2. RF在訓練過程中,引入了隨機特徵選擇。RF在Bagging的數據樣本擾動的基礎上,增加了輸入特徵擾動,提高了模型的泛化能力。具體來說,傳統決策樹在選擇劃分特徵時,在當前結點的特徵集合中選擇一個最優劃分特徵;而在RF中,是對基決策樹的每個結點,先從該結點的特徵集合中隨機選擇一個含有ķ個特徵的子集,然後再從該子集選擇最優劃分特徵。ķ越小,模型越健壯,同時對訓練集的擬合程度會變差,也就是說,ķ越小,模型方差越小,偏差越大。

5.隨機森林算法描述


輸入:訓練集d,決策樹算法\ mathfrak {L},基學習器個數Ť

過程:

        \ begin {array} {* {20} {c}} {for}&{t = 1,2,\ ldots,T}&{do} \ end {array}

                1.採樣自助得到含米個樣本的採樣集{} D_T;

                2.用採樣集{} D_T訓練第Ť個基學習器:{h_t} = {\ mathfrak {L}} \ left({{D_t}} \ right)。並且在模型訓練過程中,對決策樹模型的每個結點,在結點的特徵集合中選擇{\ color {Red} k}個特徵,再從這些特徵中選擇最優劃分特徵來劃分子樹。

輸出:

      H \ left(x \ right)= \ mathop {\ arg \ max} \ limits_ {y \ in \ kappa} \ sum \ limits_ {t = 1} ^ T {I \ left({{h_t} \ left(x \ right)= y} \ right)}(分類任務)或H \ left(x \ right)= \ frac {1} {T} \ sum \ limits_ {t = 1} ^ T {{h_t} \ left(x \ right)}(迴歸任務)。


6.隨機森林優缺點

上面提到隨機森林中基學習器的多樣性不僅來自樣本擾動,還來自特徵擾動。這就使得最終集成模型的泛化性能可通過個體學習器之間差異度的增加而進一步提升。

隨機森林的優點:

        1. 訓練可以高度並行化,可以實現在大型數據集上高效運行;

        2. 由於可以隨機選擇決策樹結點的劃分特徵,因此能夠處理具有高維特徵的輸入樣本,而不需要降維;

        3. 能夠評估各個特徵對預測的重要性;

        4. 由於採用了隨機採樣和隨機特徵選擇,訓練處的模型方差小,泛化能力強;

        5. 對缺失值不敏感,可以處理不平衡數據。

缺點:

        在某些噪音較大的數據集上,易陷入過擬合。

參考文獻:

1.《機器學習》第八章集成學習——周志華

2.  Bagging與隨機森林算法原理小結

3.  [機器學習與算法]隨機森林(隨機森林)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章