隨機森林是一種由決策樹構成的集成算法,他在很多情況下都能有不錯的表現。
本文將介紹隨機森林的基本概念、4 個構造步驟、4 種方式的對比評測、10 個優缺點和 4 個應用方向。
什麼是隨機森林?
隨機森林屬於 集成學習 中的 Bagging(Bootstrap AGgregation 的簡稱) 方法。如果用圖來表示他們之間的關係如下:
決策樹 – Decision Tree
在解釋隨機森林前,需要先提一下決策樹。決策樹是一種很簡單的算法,他的解釋性強,也符合人類的直觀思維。這是一種基於if-then-else規則的有監督學習算法,上面的圖片可以直觀的表達決策樹的邏輯。
詳細瞭解決策樹,可以看看《一文看懂決策樹 – Decision tree(3個步驟+3種典型算法+10個優缺點)》
隨機森林 – Random Forest | RF
隨機森林是由很多決策樹構成的,不同決策樹之間沒有關聯。
當我們進行分類任務時,新的輸入樣本進入,就讓森林中的每一棵決策樹分別進行判斷和分類,每個決策樹會得到一個自己的分類結果,決策樹的分類結果中哪一個分類最多,那麼隨機森林就會把這個結果當做最終的結果。
構造隨機森林的 4 個步驟
隨機森林的優缺點
優點
它可以出來很高維度(特徵很多)的數據,並且不用降維,無需做特徵選擇它可以判斷特徵的重要程度可以判斷出不同特徵之間的相互影響不容易過擬合訓練速度比較快,容易做成並行方法實現起來比較簡單對於不平衡的數據集來說,它可以平衡誤差。如果有很大一部分的特徵遺失,仍可以維持準確度。缺點
隨機森林已經被證明在某些噪音較大的分類或迴歸問題上會過擬合。對於有不同取值的屬性的數據,取值劃分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值是不可信的隨機森林 4 種實現方法對比測試
隨機森林是常用的機器學習算法,既可以用於分類問題,也可用於迴歸問題。本文對 scikit-learn、Spark MLlib、DolphinDB、XGBoost 四個平臺的隨機森林算法實現進行對比測試。評價指標包括內存佔用、運行速度和分類準確性。
測試結果如下:
測試過程及說明忽略,感興趣的可以查看原文《隨機森林算法 4 種實現方法對比測試:DolphinDB 速度最快,XGBoost 表現最差》
隨機森林的 4 個應用方向
隨機森林可以在很多地方使用:
對離散值的分類對連續值的迴歸無監督學習聚類異常點檢測