【问题标题】:randomForest::combine() and objects in a listrandomForest::combine() 和列表中的对象
【发布时间】:2014-08-28 20:02:13
【问题描述】:

为了在非常大的数据集上运行随机森林模型,我将数据分成多个块,并在每个块上运行 randomForest::randomForest()。生成的 randomForest 对象包含在列表中。我现在需要使用 randomForest::combine() 来组合来自每个数据块的树。

我的问题是,如何对列表中的所有对象使用诸如 combine() 之类的函数?据我了解,sapply() 等将一个函数应用于列表中的每个对象——这不是我想要做的。我需要对列表中的所有 randomForest 对象使用 combine() ;或者如果这不是直接可能的,我需要单独拉出每个对象并将其发送到 combine()。另一个问题是我有不同数量的数据块的不同数据集;我希望代码在块数方面具有灵活性。

我的列表 (rf.final) 包含对象“1”到“5”,每个对象都是 randomForest 对象:

> class(rf.final)
[1] "list"
> names(rf.final)
[1] "1" "2" "3" "4" "5"
> class(rf.final[[1]])
[1] "randomForest.formula" "randomForest"  

有 5 个对象只是因为我有 5 块数据用于这个特定的数据集。

我没有包含 str(rf.final),因为输出很大 [即使只是 str(rf.final[[1]])] 但如果需要我可以。

【问题讨论】:

    标签: r list random-forest


    【解决方案1】:

    我终于找到了解决办法!使用基础包中的 do.call() 函数。

    rf.final2 <- do.call("combine", rf.final)
    

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2015-04-30
      • 2012-01-22
      • 2015-11-10
      • 2015-12-28
      • 1970-01-01
      • 2016-04-11
      • 2013-08-26
      • 2018-11-16
      相关资源
      最近更新 更多