1. 程式人生 > >Bagging與隨機森林演算法原理小結

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

 在整合學習原理小結中,我們講到了整合學習有兩個流派,一個是boosting派系,它的特點是各個弱學習器之間有依賴關係。另一種是bagging流派,它的特點是各個弱學習器之間沒有依賴關係,可以並行擬合。本文就對整合學習中Bagging與隨機森林演算法做一個總結。

    隨機森林是整合學習中可以和梯度提升樹GBDT分庭抗禮的演算法,尤其是它可以很方便的並行訓練,在如今大資料大樣本的的時代很有誘惑力。

1.  bagging的原理

    在整合學習原理小結中,我們給Bagging畫了下面一張原理圖。

    從上圖可以看出,Bagging的弱學習器之間的確沒有boosting那樣的聯絡。它的特點在“隨機取樣”。那麼什麼是隨機取樣?

    隨機取樣(bootsrap)就是從我們的訓練集裡面採集固定個數的樣本,但是每採集一個樣本後,都將樣本放回。也就是說,之前採集到的樣本在放回後有可能繼續被採集到。對於我們的Bagging演算法,一般會隨機採集和訓練集樣本數m一樣個數的樣本。這樣得到的取樣集和訓練集樣本的個數相同,但是樣本內容不同。如果我們對有m個樣本訓練集做T次的隨機取樣,,則由於隨機性,T個取樣集各不相同。

    

    bagging對於弱學習器沒有限制,這和Adaboost一樣。但是最常用的一般也是決策樹和神經網路。

    bagging的集合策略也比較簡單,對於分類問題,通常使用簡單投票法,得到最多票數的類別或者類別之一為最終的模型輸出。對於迴歸問題,通常使用簡單平均法,對T個弱學習器得到的迴歸結果進行算術平均得到最終的模型輸出。

    由於Bagging演算法每次都進行取樣來訓練模型,因此泛化能力很強,對於降低模型的方差很有作用。當然對於訓練集的擬合程度就會差一些,也就是模型的偏倚會大一些。

2.  bagging演算法流程

    

3. 隨機森林演算法

    理解了bagging演算法,隨機森林(Random Forest,以下簡稱RF)就好理解了。它是Bagging演算法的進化版,也就是說,它的思想仍然是bagging,但是進行了獨有的改進。我們現在就來看看RF演算法改進了什麼。   

       

    

   

4. 隨機森林的推廣

    由於RF在實際應用中的良好特性,基於RF,有很多變種演算法,應用也很廣泛,不光可以用於分類迴歸,還可以用於特徵轉換,異常點檢測等。下面對於這些RF家族的演算法中有代表性的做一個總結。

 4.1 extra trees

    extra trees是RF的一個變種, 原理幾乎和RF一模一樣,僅有區別有:

    1) 對於每個決策樹的訓練集,RF採用的是隨機取樣bootstrap來選擇取樣集作為每個決策樹的訓練集,而extra trees一般不採用隨機取樣,即每個決策樹採用原始訓練集。

    2) 在選定了劃分特徵後,RF的決策樹會基於資訊增益,基尼係數,均方差之類的原則,選擇一個最優的特徵值劃分點,這和傳統的決策樹相同。但是extra trees比較的激進,他會隨機的選擇一個特徵值來劃分決策樹。

    從第二點可以看出,由於隨機選擇了特徵值的劃分點位,而不是最優點位,這樣會導致生成的決策樹的規模一般會大於RF所生成的決策樹。也就是說,模型的方差相對於RF進一步減少,但是偏倚相對於RF進一步增大。在某些時候,extra trees的泛化能力比RF更好。

4.2 Totally Random Trees Embedding

    Totally Random Trees Embedding(以下簡稱 TRTE)是一種非監督學習的資料轉化方法。它將低維的資料集對映到高維,從而讓對映到高維的資料更好的運用於分類迴歸模型。我們知道,在支援向量機中運用了核方法來將低維的資料集對映到高維,此處TRTE提供了另外一種方法。

    TRTE在資料轉化的過程也使用了類似於RF的方法,建立T個決策樹來擬合數據。當決策樹建立完畢以後,資料集裡的每個資料在T個決策樹中葉子節點的位置也定下來了。比如我們有3顆決策樹,每個決策樹有5個葉子節點,某個資料特徵x劃分到第一個決策樹的第2個葉子節點,第二個決策樹的第3個葉子節點,第三個決策樹的第5個葉子節點。則x對映後的特徵編碼為(0,1,0,0,0,     0,0,1,0,0,     0,0,0,0,1), 有15維的高維特徵。這裡特徵維度之間加上空格是為了強調三顆決策樹各自的子編碼。

    對映到高維特徵後,可以繼續使用監督學習的各種分類迴歸演算法了。

4.3 Isolation Forest

    Isolation Forest(以下簡稱IForest)是一種異常點檢測的方法。它也使用了類似於RF的方法來檢測異常點。

    對於在T個決策樹的樣本集,IForest也會對訓練集進行隨機取樣,但是取樣個數不需要和RF一樣,對於RF,需要取樣到取樣集樣本個數等於訓練集個數。但是IForest不需要取樣這麼多,一般來說,取樣個數要遠遠小於訓練集個數?為什麼呢?因為我們的目的是異常點檢測,只需要部分的樣本我們一般就可以將異常點區別出來了。

    對於每一個決策樹的建立, IForest採用隨機選擇一個劃分特徵,對劃分特徵隨機選擇一個劃分閾值。這點也和RF不同。

    另外,IForest一般會選擇一個比較小的最大決策樹深度max_depth,原因同樣本採集,用少量的異常點檢測一般不需要這麼大規模的決策樹。

    

5. 隨機森林小結

    RF的演算法原理也終於講完了,作為一個可以高度並行化的演算法,RF在大資料時候大有可為。 這裡也對常規的隨機森林演算法的優缺點做一個總結。

    RF的主要優點有:

    1) 訓練可以高度並行化,對於大資料時代的大樣本訓練速度有優勢。個人覺得這是的最主要的優點。

    2) 由於可以隨機選擇決策樹節點劃分特徵,這樣在樣本特徵維度很高的時候,仍然能高效的訓練模型。

    3) 在訓練後,可以給出各個特徵對於輸出的重要性

    4) 由於採用了隨機取樣,訓練出的模型的方差小,泛化能力強。

    5) 相對於Boosting系列的Adaboost和GBDT, RF實現比較簡單。

    6) 對部分特徵缺失不敏感。

    RF的主要缺點有:

    1)在某些噪音比較大的樣本集上,RF模型容易陷入過擬合。

    2) 取值劃分比較多的特徵容易對RF的決策產生更大的影響,從而影響擬合的模型的效果。