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