1. 程式人生 > >3. 整合學習(Ensemble Learning)隨機森林(Random Forest)

3. 整合學習(Ensemble Learning)隨機森林(Random Forest)

1. 前言

相信看了之前關於整合學習的介紹,大家對整合學習有了一定的瞭解。本文在給大家介紹下遠近聞名的隨機森林(RF)演算法。

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

2. 隨機森林原理

隨機森林是Bagging演算法的進化版,也就是說,它的基本思想仍然和Bagging,但是進行了獨有的改進。

  1. RF使用了CART決策樹作為弱學習器,這讓我們想到了梯度提示樹GBDT。
  2. 在使用決策樹的基礎上,RF對決策樹的建立做了改進,對於普通的決策樹,我們會在節點上所有的n個樣本特徵中選擇一個最優的特徵來做決策樹的左右子樹劃分,但是RF通過隨機選擇節點上的一部分樣本特徵
    ,這個數字小於n,假設為\(n_{sub}\),然後在這些隨機選擇的\(n_{sub}\)個樣本特徵中,選擇一個最優的特徵來做決策樹的左右子樹劃分。這樣進一步增強了模型的泛化能力。 

如果\(n_{sub}=n\),則此時RF的CART決策樹和普通的CART決策樹沒有區別。\(n_{sub}\)越小,則模型約健壯,當然此時對於訓練集的擬合程度會變差。也就是說\(n_{sub}\)越小,模型的方差會減小,但是偏倚會增大。在實際案例中,一般會通過交叉驗證調參獲取一個合適的\(n_{sub}\)的值。

3. 隨機森林演算法

輸入:為樣本集\(D={(x_1,y_1),(x_2,y_2),...(x_m,y_m)}\)

,弱分類器迭代次數\(T\)
輸出:為最終的強分類器\(f(x)\)

  1. 對於\(t=1,2...,T\):
    1. 對訓練集進行第\(t\)次隨機取樣,共採集\(m\)次,得到包含\(m\)個樣本的取樣集\(D_t\)
    2. 用取樣集\(D_t\)訓練第t個決策樹模型\(G_t(x)\),在訓練決策樹模型的節點的時候, 在節點上所有的樣本特徵中選擇一部分樣本特徵, 在這些隨機選擇的部分樣本特徵中選擇一個最優的特徵來做決策樹的左右子樹劃分
  2. 如果是分類演算法預測,則\(T\)個弱學習器投出最多票數的類別或者類別之一為最終類別。如果是迴歸演算法,\(T\)個弱學習器得到的迴歸結果進行算術平均得到的值為最終的模型輸出。

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維的高維特徵。這裡特徵維度之間加上空格是為了強調三顆決策樹各自的子編碼。

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

5. 總結

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

RF的主要優點有:

  1. 訓練可以高度並行化,對於大資料時代的大樣本訓練速度有優勢。個人覺得這是的最主要的優點。
  2. 由於可以隨機選擇決策樹節點劃分特徵,這樣在樣本特徵維度很高的時候,仍然能高效的訓練模型。
  3. 在訓練後,可以給出各個特徵對於輸出的重要性。
  4. 由於採用了隨機取樣,訓練出的模型的方差小,泛化能力強。
  5. 相對於Boosting系列的Adaboost和GBDT, RF實現比較簡單。
  6. 對部分特徵缺失不敏感。

RF的主要缺點有:

  1. 在某些噪音比較大的樣本集上,RF模型容易陷入過擬合。
  2. 取值劃分比較多的特徵容易對RF的決策產生更大的影響,從而影響擬合的模型的效果。

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