隨機森林(分類與迴歸)

隨機森林(可用於分類迴歸html

 

隨機森林主要應用於迴歸和分類。python

隨機森林在運算量沒有顯著提升的前提下提升了預測精度。算法

 

一、簡介框架

隨機森林由多棵決策樹構成,且森林中的每一棵決策樹之間沒有關聯,模型的最終輸出由森林中的每一棵決策樹共同決定。學習

處理分類問題時對於測試樣本,森林中每棵決策樹會給出最終類別,最後綜合考慮森林內每一棵決策樹的輸出類別,以測試

投票方式來決定測試樣本的類別處理迴歸問題時則以每棵決策樹輸出的均值爲最終結果優化

 

二、隨機森林的隨機性spa

體如今兩個方面:htm

Ⅰ:樣本的隨機性,從訓練集中隨機抽取必定數量的樣本,做爲每顆決策樹的根節點樣本;blog

Ⅱ:屬性的隨機性,在創建每顆決策樹時,隨機抽取必定數量的候選屬性,從中選擇最合適的屬性做爲分裂節點。

 

三、隨機森林算法框架

 

 具體步驟:

(1)從訓練集中隨機抽取必定數量的樣本,做爲每棵樹的根節點樣本;

(2)在創建決策樹時,隨機抽取必定數量的候選屬性,從中選擇最合適屬性做爲分裂節點;(決策樹構造見《決策樹分類算法及python代碼實現案例》)

(3)創建好隨機森林之後,對於測試樣本,進入每一顆決策樹進行類型輸出或迴歸輸出;如果分類問題,以投票的方式輸出最終類別,如果迴歸問題,

    每一顆決策樹輸出的均值做爲最終結果。

 

在創建每一棵決策樹的過程當中,有兩點須要注意:採樣徹底分裂

首先是兩個隨機採樣的過程,隨機森林對輸入的數據要進行行、列的採樣。對於行採樣,採用有放回的方式,也就是在採樣獲得的樣本集合中,可能有重複的樣本。

假設輸入樣本爲N個,那麼採樣的樣本也爲N個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是所有的樣本,使得相對不容易出現過擬合over-fitting。

而後進行列採樣,從M個feature中,選擇m個(m << M)。以後就是對採樣以後的數據使用徹底分裂的方式創建出決策樹,這樣決策樹的某一個葉子節點要麼是無

法繼續分裂的,要麼裏面的全部樣本的都是指向的同一個分類。

通常不少的決策樹算法都一個重要的步驟 – 剪枝,可是這裏不這樣幹,因爲以前的兩個隨機採樣的過程保證了隨機性,因此就算不剪枝,也不會出現over-fitting。

每一棵決策樹就是一個精通於某一個窄領域的專家(由於咱們從M個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了不少個精通不一樣領域的專家,

對一個新的問題(新的輸入數據),能夠用不一樣的角度去看待它,最終由各個專家,投票獲得結果。

 

四、可優化的參數

決策樹算法中可優化的參數有:最小葉節點樣本數、剪枝方式等。

隨機森林中可優化的參數有:森林中決策樹的棵數。

相關文章
相關標籤/搜索