如何解决R中重复k倍CV循环以捕获指标
我对R还是比较陌生,作为一项练习,我希望循环执行k倍CV 50次。我收到的错误是“要替换的项目数不是替换长度的倍数”
knn.preds <- lapply(folds,function(f) knn(train = X[-f,-61],test = X[f,cl = X$Class[-f],k = 5))
obs <- lapply(folds,function(x) X$Class[x])
set.seed(5)
m = 50
multiACC = c()
multiSENS = c()
multiSPEC = c()
multiF1 = c()
for(i in 1:m) { folds <- createFolds(X$Class,k = 10)
knn.metrics <- mapply(function(pred,obs) FUN = confusionMatrix(data = pred,reference = obs,mode = "everything"),pred = knn.preds,obs = obs,SIMPLIFY = FALSE)
knn.accuracy <- vapply(knn.metrics,function(cm) cm[["overall"]]["Accuracy"],numeric(1))
knn.sensitivity <- vapply(knn.metrics,function(cm) cm[["byClass"]]["Sensitivity"],numeric(1))
knn.specificity <- vapply(knn.metrics,function(cm) cm[["byClass"]]["Specificity"],numeric(1))
knn.F1 <- vapply(knn.metrics,function(cm) cm[["byClass"]]["F1"],numeric(1))
multiACC[i] = knn.accuracy
multiSENS[i] = knn.sensitivity
multiSPEC[i] = knn.specificity
multiF1[i] = knn.F1
}
这个想法是在方框图中最后绘制multiACC等。但是我在mapply中有那个长度错误,不确定我要去哪里。
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。