決策樹算法之隨機森林

在 CART 分類回歸樹的基礎之上,我們可以很容易的掌握隨機森林算法,它們之間的區(qū)別在于,CART 決策樹較容易過擬合,而隨機森林可以在一定程度上解決該問題。

隨機森林的主要思想是:使用隨機性產生出一系列簡單的決策樹,并組合它們的預測結果為最終的結果,可謂三個臭皮匠賽過一個諸葛亮,下面我們就來具體了解一下。

產生隨機森林的具體步驟

產生隨機森林的步驟大致為三步

  1. 準備樣本
  2. 產生決策樹
  3. 循環(huán)第 1 、2 步,直到產生足夠的決策樹,一般為上百個

在第 1 步,它是一個可放回抽樣,即所產生的樣本是允許重復的,這種抽樣又被稱為 Bootstrap,例如我們有以下 dummy 數(shù)據(jù)

胸口疼痛 血液循環(huán)正常 血管堵塞 體重 患心臟病
No No No 125 No
Yes Yes Yes 180 Yes
Yes Yes No 210 No
Yes No Yes 167 Yes

在做完 Bootstrap 之后,可能的樣本數(shù)據(jù)如下

胸口疼痛 血液循環(huán)正常 血管堵塞 體重 患心臟病
Yes Yes Yes 180 Yes
No No No 125 No
Yes No Yes 167 Yes
Yes No Yes 167 Yes

可見,樣本數(shù)據(jù)中,第 3 條和第 4 條樣本是一樣的,都對應的是原始數(shù)據(jù)中的第 4 條。

接下來,就是要使用上面的樣本數(shù)據(jù)來產生決策樹了,產生決策樹的方法和 CART 基本一致,唯一的不同地方在于,節(jié)點的構建不是來自于全部的候選特征,而是先從中隨機的選擇 n 個特征,在這 n 個特征中找出一個作為最佳節(jié)點。

舉個例子,假設 n = 2,且我們隨機選擇了「血液循環(huán)正?!购汀秆芏氯惯@兩個特征來產生根節(jié)點,如下:

血液循環(huán)正常 血管堵塞 患心臟病
Yes Yes Yes
No No No
No Yes Yes
No Yes Yes

我們將在上述兩個特征中選擇一個合適的特征作為根節(jié)點,假設在計算完 Gini 不純度之后,「血液循環(huán)正?!惯@個特征勝出,那么我們的根節(jié)點便是「血液循環(huán)正?!?,如下圖所示

接下來我們還需要構建根節(jié)點下面的節(jié)點,下一個節(jié)點將會在剩下的「胸口疼痛」、「血管堵塞」和「體重」三個特征中產生,但我們依然不會計算所有這 3 個特征的 Gini 不純度,而是從中隨機選擇 2 個特征,取這 2 個特征中的 Gini 不純度較低者作為節(jié)點。

例如我們隨機選到了「胸口疼痛」和「體重」這兩列,如下:

胸口疼痛 體重 患心臟病
Yes 180 Yes
No 125 No
Yes 167 Yes
Yes 167 Yes

假設此時「體重」的 Gini 不純度更低,那么第 2 個節(jié)點便是「體重」,如下圖:

繼續(xù)下去,我們便產生了一棵決策樹。

隨機森林是多棵決策樹,在產生完一棵決策樹后,接著會循環(huán)執(zhí)行上述過程:Bootstrap 出訓練樣本,訓練決策樹,直到樹的數(shù)量達到設置值——通常為幾百棵樹。

隨機森林的預測

現(xiàn)在我們產生了幾百棵樹的隨機森林,當我們要預測一條數(shù)據(jù)時,該怎么做呢?我們會聚合這些樹的結果,選擇預測結果最多的那個分類作為最終的預測結果。

例如我們現(xiàn)在有一條數(shù)據(jù):

胸口疼痛 血液循環(huán)正常 血管堵塞 體重 患心臟病
Yes No No 168

該條數(shù)據(jù)被所有樹預測的結果如下:

第幾顆樹 預測結果
1 Yes
2 Yes
... ...
100 No

上述結果聚合后為:

預測結果 次數(shù)
Yes 82
No 18

取最多的那項為最終的預測結果,即 Yes——該病人被診斷為患有心臟病。

以上,隨機森林的兩個過程:Bootstrap 和 Aggregate 又被稱為 Bagging。

總結

本文我們一起學習了隨機森林的算法,和 CART 決策樹比起來,它主要被用來解決過擬合問題,其主要的思想為 Bagging,即隨機性有助于增強模型的泛化(Variance) 能力。

參考:

相關文章:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 基于樹(Tree based)的學習算法在數(shù)據(jù)科學競賽中是相當常見的。這些算法給預測模型賦予了準確性、穩(wěn)定性以及易...
    TechTalker閱讀 968評論 0 3
  • 分類算法-決策樹、隨機森林 決策樹思想的來源非常樸素,程序設計中的條件分支結構就是if-then結構,最早的決策樹...
    butters001閱讀 317評論 0 0
  • 決策樹 認識決策樹 信息論基礎-銀行貸款分析 決策樹的生成 泰坦尼克號乘客生存分類 認識決策樹 決策樹思想的來源非...
    MacsenChu閱讀 711評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學已經沒多少時間了。班主任說已經安排了三個家長分享經驗。 放學鈴聲...
    飄雪兒5閱讀 7,867評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉變要...
    余生動聽閱讀 10,914評論 0 11

友情鏈接更多精彩內容