【问题标题】:in R Plot importance variables of Random Forest model在 R 中绘制随机森林模型的重要性变量
【发布时间】:2012-06-10 00:48:17
【问题描述】:

我在这里做错了什么? “下标越界”是什么意思?

我从革命 R 在线研讨会中获得了以下代码(第一个块)摘录,内容是关于 R 中的数据挖掘。我正在尝试将其合并到我运行的 RF 模型中,但无法通过我认为的排序变量。我只想绘制变量的重要性。

我在下面添加了一些内容以提供上下文。但我真正错误的是第三行代码。第二个代码块是应用于我正在处理的数据时遇到的错误。谁能帮我解决这个问题?

    -------------------------------------------------------------------------
# List the importance of the variables.
rn <- round(importance(model.rf), 2)
rn[order(rn[,3], decreasing=TRUE),]
##@# of 
# Plot variable importance
varImpPlot(model.rf, main="",col="dark blue")
title(main="Variable Importance Random Forest weather.csv",
            sub=paste(format(Sys.time(), "%Y-%b-%d %H:%M:%S"), Sys.info()["user"])) 
#--------------------------------------------------------------------------

我的错误:

> rn[order(rn[,2], decreasing=TRUE),]
Error in order(rn[, 2], decreasing = TRUE) : subscript out of bounds

【问题讨论】:

  • 下标越界通常意味着您尝试在矩阵中使用某个值作为超出矩阵维度的下标。就像要求 2 列矩阵的第 3 列一样。但是,鉴于您提供的信息很少,很难看到有人可以为您提供更多帮助。
  • 添加 cmets 时遇到问题...
  • 为什么我不能评论蒂姆的下面?我想问他“从在线文档中运行一个示例”是什么意思。我怎么做?或者他的意思是从 UCI 运行 Iris 集?
  • 输入 ?randomForest 并向下滚动。每个帮助页面上都有示例代码。
  • 对,但我认为 Tim 指的是与示例代码一起使用的示例文件。

标签: r subscript random-forest


【解决方案1】:

我想我理解这种困惑。我打赌你是一个 4 指的 Kit Kat,如果你输入 ncol(rn),你会看到 rn 有 2 列,而不是你想象的 3 列。您在屏幕上看到的第一个“列”并不是真正的列 - 它只是对象 rn 的行名。输入rownames(rn) 进行确认。因此,您要排序的 rn 的最后一列是 rn[,2] 而不是 rn[,3]。出现“下标越界”消息是因为您要求 R 按第 3 列排序,但 rn 没有第 3 列。

对于任何对“重要性”对象实际上是什么感兴趣的人来说,这是我的简短侦探线索...我安装了 library(randomForest),然后从在线文档中运行了一个示例:

set.seed(4543)
data(mtcars)
mtcars.rf <- randomForest(mpg ~ ., data=mtcars, ntree=1000, 
             keep.forest=FALSE, importance=TRUE)
importance(mtcars.rf)

在这种情况下,“重要性”对象看起来像这样(前几行只是为了节省空间):

       %IncMSE IncNodePurity
cyl  17.058932     181.70840
disp 19.203139     242.86776
hp   17.708221     191.15919
...

显然 ncol(importance(mtcars.rf)) 是 2,而行名很可能是导致混淆的东西 :)

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 2017-08-29
    • 1970-01-01
    • 2020-06-06
    • 2015-05-19
    • 2020-11-10
    • 2020-02-25
    • 2017-01-12
    • 2021-08-15
    相关资源
    最近更新 更多