天天看點

3. 內建學習(Ensemble Learning)随機森林(Random Forest)

1. 內建學習(Ensemble Learning)原理

2. 內建學習(Ensemble Learning)Bagging

3. 內建學習(Ensemble Learning)随機森林(Random Forest)

4. 內建學習(Ensemble Learning)Adaboost

5. 內建學習(Ensemble Learning)GBDT

6. 內建學習(Ensemble Learning)算法比較

7. 內建學習(Ensemble Learning)Stacking

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的決策産生更大的影響,進而影響拟合的模型的效果。

繼續閱讀