“ - ”错误对因子

时间:2018-02-27 14:11:12

标签: r random-forest cross-validation

我正在尝试使用随机林对我的数据集执行交叉验证。

我的响应变量是数据类型因子,有2个级别(1,2)。

我在下面使用此功能进行交叉验证技术

k = 10

Imputed_data$id <- sample(1:k , nrow(Imputed_data), replace = TRUE)
list <- 1:k

prediction <- data.frame()
testsetcopy <- data.frame()

progress.bar <- create_progress_bar("text")
progress.bar$init(k)

for (i in 1:k){

  trainingset <- subset(Imputed_data,id %in% list[-i])
  testset <- subset(Imputed_data, id %in% c(i))

  # run a random forest model
  mymodel <- randomForest(trainingset$Accepted~ ., data = trainingset)


  temp <- as.data.frame(predict(mymodel, testset[,-13]))

  prediction <- rbind(prediction, temp)


  testsetcopy <- rbind(testsetcopy, as.data.frame(testset[,13]))

  progress.bar$step()
}

result <- cbind(prediction, testsetcopy[,1])
names(result) <- c("Predicted", "Actual")

result$Difference <-abs(result$Actual-result$Predicted)


summary(result$Difference)

我在第

行收到错误
  

结果$差异&lt; -abs(结果$ Actual-result $ Predicted)

     

在Ops.factor中(结果$ Actual,结果$ Predicted):' - '没有意义   因素

我可以理解,无法用于因素而且 - 也没有使用。

我是R的新手,我不确定如何计算我的结果。任何领导都会有所帮助。

1 个答案:

答案 0 :(得分:2)

您不能减去因子,也不能使用abs作为因子。这很清楚。

显示结果的最佳方式是在交叉表中,尝试例如,

table(result$predicted, result$Actual)

或使用插入符号功能:

confusionMatrix(result$predicted, result$Actual)