我正在尝试使用随机林对我的数据集执行交叉验证。
我的响应变量是数据类型因子,有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的新手,我不确定如何计算我的结果。任何领导都会有所帮助。
答案 0 :(得分:2)
您不能减去因子,也不能使用abs作为因子。这很清楚。
显示结果的最佳方式是在交叉表中,尝试例如,
table(result$predicted, result$Actual)
或使用插入符号功能:
confusionMatrix(result$predicted, result$Actual)