[譯] 五分鐘帶你瞭解隨機森林
最近在medium中看到William Koehrsen,發現其分享了數十篇python相關的高質量的資料分析文章。我想盡量抽時間將他的文章翻譯過來,分享給大家。
作者: William Koehrsen
標題“《Random Forest Simple Explanation-Understanding the random forest with an intuitive example》
翻譯:大鄧
當我們學習一個新的 技術概念
時候,我認為最好的學習方式是從更高的層次去縱覽全域性,之後再扎進 該技術
的具體細節中去。本文將採用一個很 直觀
的例子來幫助大家理解 隨機森林
。在本文之後,會更新一篇 端到端(end-to-end)
預測類文章。理論加實戰,方便大家快速理解並掌握隨機森林演算法的使用。(記得戳下哦!)
決策樹:隨機森林的基石
為了理解隨機森林,我們先理解隨機森林的基石 - 決策樹
。在日常生活中我們經常會用到決策樹,比如 給你一個人的某些資訊,讓你猜這個人的性別
。我們可能會問提問者這個人的喜好是否喜歡逛街。如果喜歡逛街,我們可能就預測該人為女孩,否則該人可能是男孩。
這只是很簡單的預測,我們只需要知道這一個問題的答案就預測出這個人的性別。但在現實生活中,我們做預測或者決策僅僅瞭解一個問題及其答案,資訊量不足以讓我們做出決策。由於之後會用西雅圖氣溫資料做隨機森林預測,這裡我們就以氣溫預測來繼續講解 決策樹
。如圖,讓我們預測明天的溫度,我們可能會根據現在所處季節、歷史平均溫度、當前最大溫度等資訊,預測出明天的溫度。
上圖只是在每次提問時候,都得到我們想要的資訊,我們根據這些資訊做出預測。實際上顯示生活中的決策過程,比上圖只有一條線路的提問要複雜一些(需要了解更多的不同種類的資訊)。回答也會有多種答案,決策過程也會分叉,樣子更像決策樹。如下圖
決策樹都是從最初的左側節點開始,經過各種問題(範圍)一步步分叉,最終得到預測結果(葉子)。至於決策樹中的問題或者閾值範圍是如何學習的,這裡我們就不展開,我們可以將其看做是黑盒子,只需要大體理解決策樹的概念以及用途即可。
群體智慧
我們人在決策的時候,如果對這個決策拿不準主意,往往會找人幫忙參謀參謀。咱們也經常聽到
-
人多力量大
-
一人計短,眾人計長
-
三個臭皮匠賽過諸葛亮
這些都是群體智慧的體現。 因為每個人都有其經驗知識的侷限性,我們要儘可能將問題考慮全面,那麼最好的辦法是引入與自己知識背景存在差異性的人,這樣考慮的更全面,決策才能更科學
。但是在電腦中如何模擬出存在差異性的眾人,並這些人幫助做決策?
隨機森林
在統計學中,體現差異性的指標是 方差
。在機器中,我們可以使用隨機森林,來生成有不同知識背景的大腦。隨機森林的思路是將眾多的決策樹模型合併為一個單一的模型。可能每一個決策樹模型表現並不出色,但是三個臭皮匠賽過諸葛亮,彙總出的預測結果可能更接近真實值。
為什麼叫隨機森林?
因為人們是根據不同的資料來做的決策,我們可以認為在森林中的每個決策樹使用的資料是整個資料集中隨機抽樣所得的資料。這樣的操作增加了整個模型的 多樣性(diversity)
,會增強模型的魯棒性robust。
總結
機器學習乍聽起來很難,但實際上是由非常多巧妙而簡單的想法積累而成的
。例如,在隨機森林中有兩個日常生活中常見的思想貫穿其中:
-
人類做決策的方式,構建“問題-答案”的流程圖
-
群體智慧