一文看懂隨機森林 - Random Forest(附 4 個構造步驟+4 種實現方式評測+10 個優缺點)

本文首發自 產品經理的人工智能知識庫算法

原文地址:《一文看懂隨機森林 - Random Forest(附 4 個構造步驟+10 個優缺點)dom

一文看懂隨機森林

隨機森林是一種由決策樹構成的集成算法,他在不少狀況下都能有不錯的表現。機器學習

本文將介紹隨機森林的基本概念、4 個構造步驟、4 種方式的對比評測、10 個優缺點和 4 個應用方向。學習

什麼是隨機森林?

隨機森林屬於 集成學習 中的 Bagging(Bootstrap AGgregation 的簡稱) 方法。若是用圖來表示他們之間的關係以下:測試

隨機森林屬於集成學習中的Bagging方法

決策樹 - Decision Tree人工智能

圖解決策樹

在解釋隨機森林前,須要先提一下決策樹。決策樹是一種很簡單的算法,他的解釋性強,也符合人類的直觀思惟。這是一種基於if-then-else規則的有監督學習算法,上面的圖片能夠直觀的表達決策樹的邏輯。rest

隨機森林 - Random Forest | RFcdn

圖解隨機森林

隨機森林是由不少決策樹構成的,不一樣決策樹之間沒有關聯。blog

當咱們進行分類任務時,新的輸入樣本進入,就讓森林中的每一棵決策樹分別進行判斷和分類,每一個決策樹會獲得一個本身的分類結果,決策樹的分類結果中哪個分類最多,那麼隨機森林就會把這個結果當作最終的結果。圖片

構造隨機森林的 4 個步驟

構造隨機森林的4個步驟

  1. 假若有N個樣本,則有放回的隨機選擇N個樣本(每次隨機選擇一個樣本,而後返回繼續選擇)。這選擇好了的N個樣本用來訓練一個決策樹,做爲決策樹根節點處的樣本。
  2. 當每一個樣本有M個屬性時,在決策樹的每一個節點須要分裂時,隨機從這M個屬性中選取出m個屬性,知足條件m << M。而後從這m個屬性中採用某種策略(好比說信息增益)來選擇1個屬性做爲該節點的分裂屬性。
  3. 決策樹造成過程當中每一個節點都要按照步驟2來分裂(很容易理解,若是下一次該節點選出來的那一個屬性是剛剛其父節點分裂時用過的屬性,則該節點已經達到了葉子節點,無須繼續分裂了)。一直到不可以再分裂爲止。注意整個決策樹造成過程當中沒有進行剪枝。
  4. 按照步驟1~3創建大量的決策樹,這樣就構成了隨機森林了。

隨機森林的優缺點

優勢

  1. 它能夠出來很高維度(特徵不少)的數據,而且不用降維,無需作特徵選擇
  2. 它能夠判斷特徵的重要程度
  3. 能夠判斷出不一樣特徵之間的相互影響
  4. 不容易過擬合
  5. 訓練速度比較快,容易作成並行方法
  6. 實現起來比較簡單
  7. 對於不平衡的數據集來講,它能夠平衡偏差。
  8. 若是有很大一部分的特徵遺失,仍能夠維持準確度。

缺點

  1. 隨機森林已經被證實在某些噪音較大的分類或迴歸問題上會過擬合。
  2. 對於有不一樣取值的屬性的數據,取值劃分較多的屬性會對隨機森林產生更大的影響,因此隨機森林在這種數據上產出的屬性權值是不可信的

隨機森林 4 種實現方法對比測試

隨機森林是經常使用的機器學習算法,既能夠用於分類問題,也可用於迴歸問題。本文對 scikit-learn、Spark MLlib、DolphinDB、XGBoost 四個平臺的隨機森林算法實現進行對比測試。評價指標包括內存佔用、運行速度和分類準確性。

測試結果以下:

隨機森林 4 種實現方法對比測試

測試過程及說明忽略,感興趣的能夠查看原文《隨機森林算法 4 種實現方法對比測試:DolphinDB 速度最快,XGBoost 表現最差

隨機森林的 4 個應用方向

隨機森林的 4 個應用方向

隨機森林能夠在不少地方使用:

  1. 對離散值的分類
  2. 對連續值的迴歸
  3. 無監督學習聚類
  4. 異常點檢測
相關文章
相關標籤/搜索