【问题标题】:randomForest: Error in na.fail.default: missing values in objectrandomForest:na.fail.default 中的错误:对象中的缺失值
【发布时间】:2017-05-30 13:53:45
【问题描述】:

我尝试用交叉验证训练一个随机森林,并使用 caret 包来训练 rf:

### variable return_customer = binary variable
idx.train <- createDataPartition(y = known$return_customer, p = 0.8, list = FALSE)
train <- known[idx.train, ]
test <- known[-idx.train, ]
k <- 10
set.seed(123)
model.control <- trainControl(method = "cv", number = k, classProbs = TRUE, summaryFunction = twoClassSummary,  allowParallel = TRUE)
rf.parms <- expand.grid(mtry = 1:10)
rf.caret <- train(return_customer~., data = train, method = "rf", ntree = 500, tuneGrid = rf.parms, metric = "ROC", trControl = model.control)

运行train 函数时,我收到此错误代码,但return_customer 中没有缺失值:

na.fail.default(list(return_customer = c(0L, 0L, 0L, 0L, 0L, : 对象中的缺失值

我想了解该函数为何读取数据中的缺失值以及如何解决此问题。我知道论坛中有类似的问题,但我无法修复我的代码。谢谢!

【问题讨论】:

  • 你看过this question吗?
  • 是的,但对我来说没用
  • 你有没有发现问题出在哪里?

标签: r missing-data


【解决方案1】:

缺失值会出现在您的预测变量中。

尝试使用此代码删除具有空值的行:

row.has.na <- apply(train, 1, function(x){any(is.na(x))})
predictors_no_NA <- train[!row.has.na, ]

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 2020-04-03
    • 1970-01-01
    • 2015-11-20
    • 2018-01-16
    • 1970-01-01
    • 2023-02-16
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多