當前位置:編程學習大全網 - 源碼下載 - 隨機森林(RF)的原理

隨機森林(RF)的原理

集成學習有兩個流派,壹個是boosting派系,它的特點是各個弱學習器之間有依賴關系。另壹種是bagging流派,它的特點是各個弱學習器之間沒有依賴關系,可以並行擬合。本文就對集成學習中Bagging與隨機森林算法做壹個總結。

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

bagging集成學習方法可以利用下圖說明:

上面我們對bagging算法的原理做了總結,這裏就對bagging算法的流程做壹個總結。相對於Boosting系列的Adaboost和GBDT,bagging算法要簡單的多。

輸入為樣本集D={(x1,y1),(x2,y2),...(xm,ym)},弱學習器算法, 弱分類器叠代次數T。輸出為最終的強分類器f(x).

1)對於t=1,2...,T:

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

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

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

除了上面兩點,RF和普通的bagging算法沒有什麽不同, 下面簡單總結下RF的算法。

輸入為樣本集D={(x1,y1),(x2,y2),...(xm,ym)},弱分類器叠代次數T。輸出為最終的強分類器f(x):

隨機森林算法推廣

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

Bootstrap經典語錄

作為壹個可以高度並行化的算法,RF在大數據時候大有可為。這裏也對常規的隨機森林算法的優缺點做壹個總結。

RF的主要優點有:

1)訓練可以高度並行化,對於大數據時代的大樣本訓練速度有優勢。

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

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

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

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

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

RF的主要缺點有:

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

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

原文

  • 上一篇:Sublime,Eclipse,Webstorm哪個才是最好的開發工具
  • 下一篇:眾籌四大支柱是什麽
  • copyright 2024編程學習大全網