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

3. 集成學習(Ensemble Learning)隨機森林(Random Forest)

總結 子節點 clas 支持向量機 2個 最終 分類算法 容易 oot

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]

3. 集成學習(Ensemble Learning)隨機森林(Random Forest)