隨機森林原理 R語言簡單例項

2021-07-28 00:14:34 字數 2559 閱讀 2568

隨機森林是基於決策樹的組合模型,若因變數為分類變數則建立分類判別模型,若為連續變數則建立非線性回歸分析模型。隨機森林在分類中返回得票數最多的分類選項,在回歸中返回所有決策樹輸出的平均值。隨機森林是由多個回歸樹組合而成的模型,廣泛用於分類研究,隨機森林回歸能夠有效的分析非線性、具有共線性和互動作用的資料,效果要優於多元線性回歸,並且不需要預先給定模型的形式假定,回歸效果比回歸樹更好。隨機森林在實際應用中在分類中效果要優於回歸,隨機森林不能夠作出超越訓練集資料範圍的**,這可能導致在對某些還有特定雜訊的資料進行建模時出現過度擬合。

隨機森林回歸演算法流程

隨機森林使用bootstrap重複抽樣方法,也稱自助法,是一種從給定資料集中有放回均勻抽樣,小樣本時效果較好。實際操作從原始樣本中抽取一定數量樣本,允許重複抽樣;根據抽出的樣本計算給定的統計量;重複上述步驟多次,得到多個計算的統計量結果;由統計量結果得到統計量方差。

1、假設原始樣本含量為n,應用bootstrap有放回隨機抽取b個自助樣本集(一般樣本集中樣本量越大回歸效果越好),並由此構建b顆回歸樹,同時未抽取到的資料即袋外資料(oob)作為隨機森林的測試樣本;

2、設原始資料變數個數為p,則在每乙個回歸樹的每個節點處隨機抽取m0

個變數(m0

< p )作為備選分枝變數,一般取m0

=p/3,然後再其中根據分枝優度準則選取最優分枝(同回歸樹模型建立);其中分枝優度準則是基於離均差平方和,假設有p個自變數x=(x1

,x2 ,…,xp

)和連續型因變數y。對於樹的某一節點t的樣本為,改節點樣本量為n(t),由此可知該節點的的離均差平方和。假定該階段t內所有可能的分枝集合(含變數和相應的切點)為a,分枝s將節點t**為兩個子節點tl

與tr ,其中最佳分枝既為使得t節點的離均差平方和與**後的兩個子節點對應的離均差平方和之和差距最大的分枝,即**後效果優於**前,使得各子節點內的變異最小。

3、每棵樹開始自頂向下遞迴分枝,設定葉節點最小尺寸為5,並以此作為回歸樹生長的終止條件,即當葉節點數目小於5時,停止分枝;

4、將生成的b顆回歸樹組成隨機森林回歸模型,回歸的效果評價採用帶袋外資料(oob)**殘差均方mse及擬合優度 r2

隨機森林回歸變數重要性評分

在進行回歸的過程中,可對變數進行打分,獲取變數重要性得分,增加了模型的可解釋性,其使用permulation隨機置換的方式,通過殘差均方誤差減少量衡量。

隨機置換屬於非引數檢驗的一種,通常用在小樣本情況下,具體來說,總體有m+n個,從中抽取n個作為樣本a,剩下m個作為樣本b,比較a、b兩組差異,重複該過程多次。

具體過程如下:

1、每乙個自助樣本建立乙個回歸樹,產生袋外資料b個,同時使用該模型對對應的袋外資料oob進行**,得到袋外資料的殘差均方及標準誤差(se);殘差均方記為ms

e1,m

se2,

mse3

....

mseb

; 2、遍歷擬合回歸樹所用到的變數xi

,形成新的oob測試樣本(既只採用xi

剔除其他變數),然後用已建立的隨機森林對新的oob進行**,並獲取置換後的oob殘差均方,結果矩陣如下 ms

e11ms

e21..

.mse

p1ms

e12ms

e22..

.mse

p2..

....

....

..ms

e1bm

se2b

...m

sepb

3、使用ms

e1,mse

2 ,…,ms

eb與矩陣中i行向量相減後平均最後除以標準誤差se獲取變數xi

的重要性評分。 sc

orei

=(∑b

j=1m

sej−

msei

j)/b

se(1

≤i≤p

)資料說明

資料檔案內容部分截圖如下,以index作為因變數,index1~index6為自變數,有資料可知,因變數為連續性變數,採用隨機森林的方法進行回歸擬合(若為分類變數則進行分類)。

library(randomforest)#載入r包

randomforestout

}randomression

output

}####呼叫方法,獲取結果####

data

outfile="f://data"

#指定資料輸出檔案

pre_num=4

#指定回歸**個數

formula=index~index1+index2+index3+index4+index5+index6

randomforestout(formula,data,pre_num,outfile)#呼叫方法,並匯出結果

參考**參考**:

R語言 隨機森林演算法

在隨機森林方法中,建立大量的決策樹。每個觀察被饋入每個決策樹。每個觀察的最常見的結果被用作最終輸出。新的觀察結果被饋入所有的樹並且對每個分類模型取多數投票。對構建樹時未使用的情況進行錯誤估計。這稱為oob 袋外 誤差估計,其被提及為百分比。r語言包 randomforest 用於建立隨機森林。安裝r...

隨機森林(R)

random forest install.packages randomforest library randomforest data iris attach iris table iris species class as.factor iris species 描述 biplot princ...

R語言 訓練隨機森林模型

隨機森林演算法涉及對樣本單元和變數進行抽樣,從而生成大量決策樹。對於每個樣本單元,所有決策樹依次對其進行分類,所有決策樹 類別中的眾數類別即為隨機森林所 的這一樣本單元的類別。假設訓練集中共有n個樣本單元,m個變數,則隨機森林演算法如下 1 從訓練集中隨機有放回地抽取n個樣本單元,生成大量決策樹 2...