【问题标题】:random forest error NA not permitted in predictors预测变量中不允许出现随机森林错误 NA
【发布时间】:2013-05-01 05:55:11
【问题描述】:

您好,我正在使用以下 r 脚本构建随机森林:

# load the necessary libraries                      
library(randomForest)


testPP<-numeric()


# load the dataset
QdataTrain <- read.csv('train.csv',header = FALSE)
QdataTest <- read.csv('test.csv',header = FALSE)

QdataTrainX <- subset(QdataTrain,select=-V1)
QdataTrainY<-as.factor(QdataTrain$V1)   

QdataTestX <- subset(QdataTest,select=-V1)
QdataTestY<-as.factor(QdataTest$V1)
mdl <- randomForest(QdataTrainX, QdataTrainY) 

我在哪里得到以下错误:

Error in randomForest.default(QdataTrainX, QdataTrainY) : 
  NA not permitted in predictors

但是我的数据中没有出现 NA。

这里是我的数据供参考:

https://docs.google.com/file/d/0B0iDswLYaZ0zUFFsT01BYlRZU0E/edit

有谁知道为什么会抛出这个错误?在此期间,我会继续寻找。 提前感谢您的帮助!

【问题讨论】:

  • 您是否尝试过调用建模函数的常用公式方法,即randomForest(V1 ~ ., data=QdataTrain)?会不会出现同样的问题?
  • 也试试traceback():运行你的脚本,当它失败时,输入traceback()作为下一个命令,看看是哪个子命令或函数抛出了这个错误。
  • 我无法重现错误(我评论了所有测试相关数据)
  • 确实有一些缺失值。我已经展示了找到它们的步骤。

标签: r random-forest


【解决方案1】:

给定的数据确实包含一些缺失值(特别是 7 个):

sapply(QdataTrainX, function(x) sum(is.na(x)))

## V2  V3  V4  V5  V6  V7  V8  V9 V10 V11 V12 V13 V14 V15 V16 
## 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 
## V17 V18 V19 V20 V21 V22 V23 V24 V25 V26 V27 V28 V29 
## 0   0   0   0   0   0   1   1   1   1   1   1   1 

因此,V23 到 V29 列各有一个缺失值

which(is.na(QdataTrainX$V23))

## 318

为此提供行号。

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 2014-02-28
    • 2014-08-07
    • 2019-02-19
    • 2021-03-21
    • 2019-05-04
    • 2014-08-17
    • 2014-09-09
    相关资源
    最近更新 更多