增加样本数据的大小 - R.

时间:2012-10-22 17:41:06

标签: r random-forest

我的一位同事指出,randomForest()对于非常大的数据集表现不佳。现在,我只想弄清楚是否真的如此,但由于无法共享数据集(敏感信息),我想我不妨试着想出一个大数据集。我试过以下,但无法理解错误信息:

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

错误讯息:

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

有人可以在这里指导我吗?

2 个答案:

答案 0 :(得分:2)

sample接受一个向量。从data.frame中抽样时,通常会将这些行作为一个数字进行采样,非常类似于子集,但在这种情况下,需要替换。

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

答案 1 :(得分:2)

随机森林对大型数据集表现不佳的断言是荒谬的。从样本大小和多变量角度来看,它非常适合高维度问题。 RF和非常大的问题的主要问题是:1)易处理性和2)样本平衡。

如果您遇到一个问题,其中一个类比例较大(> 30%),那么引导程序可能会有偏差,并且OOB验证(可能是估计值)不正确。结果,例如[0 = 10000,1 = 200]的二进制问题,将是一个非常高的预测率为0,非常低到1,导致模型的OOB错误率非常好但非常高,但是第1阶段表现非常糟糕。

这显然不能代表模型的表现,你对第1类的预测流行率非常低。如果你有课堂平衡问题,我会遵循陈等人的方法论。 al。,(2004)或Evans&amp;库什曼(2009年)。

Chen C,Liaw A,Breiman L(2004)使用随机森林来学习不平衡数据。 http://www.stat.berkeley.edu/tech-reports/666.pdf

埃文斯,J.S。和S.A. Cushman(2009)使用随机森林的针叶树种的梯度模拟。景观生态学5:673-683。