在 R 中的插入符号序列函数中使用 'ROC' 指标的问题

Issue using 'ROC' metric in caret train function in R

我有一个包含两个 类 的不平衡数据集,因此我想我可以使用 ROC 作为指标而不是准确性来使用 caret 包在 R 中调整我的模型(我正在尝试不同的方法,例如 rpart,射频等)。我认为我们可以提取概率并将 ROC 用作决策树类型算法中的度量标准,也可以使用插入符号。我使用下面插入符号中的数据集来说明我的问题。此数据中有三个 类,但出于说明目的,我重新定义并创建了两个 类。我不明白为什么下面的代码会出现这个错误(当我改变方法时,我总是得到同样的错误)。感谢您的帮助。

'train.default(x, y, weights = w, ...) 中的错误:无法确定最终调整参数 此外: 警告信息: 1:在 nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : 重采样性能测量中存在缺失值。 2: In train.default(x, y, weights = w, ...) : 在聚合结果中发现缺失值'

library(caret) 
data(iris)

iris$Species=as.character(iris$Species)
iris$Species[which(iris$Species=='virginica')]='versicolor'
iris$Species=as.factor(iris$Species)

fitControl <- trainControl(method = "cv",number=5,classProbs = TRUE,summaryFunction = twoClassSummary)

RF=train(Species ~ ., data = iris, method="rpart",metric="ROC", trControl=fitControl)

这可能是您的 r 和 caret 版本有问题。 当你更新你的 caret 包时,确保你的 r 版本也保持更新。

我之前遇到过这个错误,更新 r 版本解决了。