【发布时间】:2018-08-07 05:15:47
【问题描述】:
我正在尝试使用随机森林对我的数据集执行交叉验证。
我的响应变量是具有 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)
我在行中遇到错误
结果$差异
在 Ops.factor(result$Actual, result$Predicted) 中:'-' 没有意义 对于因素
我可以理解 abs 不能用于因子,并且 - 也没有使用。
我是 R 新手,我不确定如何计算我的结果。任何线索都会有所帮助。
【问题讨论】:
标签: r random-forest cross-validation