2012-10-22 54 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

虽然我必须补充说,如果有人正在为此进行研究,我当然很高兴。我们对一系列条件下的模型性能了解得越多越好。我的膝盖反应更多地是围绕着一个“轶事”评论,而这个评论没有得到当前证据的支持。我已经听到许多关于射频的奇怪声明,包括亲和骗子。 –