2012-10-22 74 views
3

我的一位同事指出randomForest()在超大型數據集中表現不佳。現在,我只是想弄清楚是不是真的是這樣,但由於數據集不能共享(敏感信息),我想我不妨試着想出一個大型的數據集。我曾嘗試以下,但不能使錯誤消息的意義:增加樣本數據的大小 - R

library(randomForest) 
data(iris) 
dataFile <- iris 
newdataFile <- dataFile[sample(dataFile, size= 1:1000000000, replace=T),] 

錯誤消息:

Error in xj[i] : invalid subscript type 'list' 

任何人都可以請指導我在這裏?

回答

2

sample接受一個向量。從data.frame採樣時,通常通過將這些行引用爲數字來對這些行進行採樣,這非常類似於子集,但在這種情況下,採用替換。

newdataFile <- iris[sample(nrow(iris),100000,replace=T),] 
+1

我認爲'虹膜[樣品(尼羅(虹膜),1e5,替換= TRUE)]]將工作(即你並不需要'1:nrow(虹膜)') –

+0

感謝您的點本! –

2

隨機森林在大型數據集中表現不佳的斷言是荒謬的。從樣本量和多變量角度來看,它非常適合高維問題。射頻和非常大問題的主要問題是:1)易處理性和2)樣品平衡。

如果您遇到一個類比例較大(> 30%)的問題,那麼引導程序可能會有偏差,並且OOB驗證以及可能的估計不正確。例如[0 = 10000,1 = 200]的二元問題的結果將是一個非常高的預測率到0和非常低到1,導致模型的非常好,但相當誇張的OOB錯誤率,但是對於1級來說性能很差。

這顯然不代表模型性能,而且對於第1級,預測發病率很低。如果您有類平衡問題,我會按照Chen et al。 (2004)或Evans & Cushman(2009)。

Chen C,Liaw A,Breiman L(2004)使用隨機森林來學習不平衡數據。 http://www.stat.berkeley.edu/tech-reports/666.pdf

Evans,J.S.和S.A. Cushman(2009)利用隨機森林進行鍼葉樹物種梯度模擬。景觀生態學5:673-683。

+0

是的,但至少OP正試圖做實驗以找出自己的... –

+0

Brieman(2001)RF論文具有解決這個問題的RLN收斂證明。它也支持Hastie et。 al,統計學習元素:數據挖掘,推理和預測。 –

+0

雖然我必須補充說,如果有人正在爲此進行研究,我當然很高興。我們對一系列條件下的模型性能瞭解得越多越好。我的膝蓋反應更多地是圍繞着一個「軼事」評論,而這個評論沒有得到當前證據的支持。我已經聽到許多關於射頻的奇怪聲明,包括親和騙子。 –