【问题标题】:Increasing the size of the sample data - R增加样本数据的大小 - R
【发布时间】:2012-10-22 17:41:06
【问题描述】:

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

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

错误信息:

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

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

【问题讨论】:

    标签: r random-forest


    【解决方案1】:

    sample 接受一个向量。从 data.frame 中采样时,通常通过将行称为数字来对行进行采样,这很类似于子集,但在这种情况下,是替换。

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

    【讨论】:

    • 我认为iris[sample(nrow(iris),1e5,replace=TRUE),] 会起作用(即你并不真的需要1:nrow(iris)
    【解决方案2】:

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

    如果您遇到的问题是某一类按比例较大 (>30%),则引导程序可能存在偏差,并且 OOB 验证以及估计可能不正确。结果,例如 [0=10000,1=200] 的二进制问题,对于 0 的预测率非常高,对于 1 的预测率非常低,从而导致模型的 OOB 错误率非常好,但相当膨胀,但是第 1 类的表现非常差。

    这显然不能代表模型性能,并且您对第 1 类的预测流行率非常低。如果您有类平衡问题,我会遵循 Chen 等人的方法。 al., (2004) 或 Evans & Cushman (2009)。

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

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

    【讨论】:

    • 是的,但至少 OP 正在尝试进行实验以自己找出答案...
    • Brieman (2001) RF 论文有一个 RLN 收敛证明可以解决这个问题。它也在 Hastie et 中得到支持。 al,统计学习的要素:数据挖掘、推理和预测。
    • 尽管如此,我必须补充一点,如果有人为此进行研究,我当然很高兴。我们对一系列条件下的模型性能了解得越多越好。我的下意识反应更多是围绕一个没有当前证据支持的“轶事”评论。我听过许多关于射频的古怪断言,无论是赞成还是反对。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2016-06-17
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多