如何在twoClassSummary下计算AUC?

时间:2019-10-15 14:12:34

标签: r caret roc auc

这是我的代码:

train <- data.frame(***contain label, feature group 1 and feature group 2***)

formula <- label ~ features group 1

ctrl <- trainControl(method = "repeatedcv",
                     number = 10,
                     repeats = 5,
                     summaryFunction = twoClassSummary,
                     classProbs = T)

fit <- train(formula,
             data = train, 
             method = "glm", 
             metric = "ROC",
             trControl = ctrl,
             na.action = na.omit)

pred <- predict(fit, train)

我的问题是:如何计算pred的AUC?

我尝试过prSummary,ROCR和pROC均不起作用,当obs和pred完全相同(逐级)时,似乎无法计算AUC。

我想知道我是否可以使用AUC作为度量标准进行训练,怎么不能显示AUC?

p.s。

> levels(train$label)
[1] "classA" "classB"
> levels(as.factor(pred))
[1] "classA" "classB"

我正在做的是:将多个算法与插入号匹配,并根据AUC对它们进行排名,然后我可以选择最佳算法(基于AUC)。

*可复制的示例:

火车组:虹膜

功能g1:前2个功能

功能g2:最后2个功能

种子:123 *

1 个答案:

答案 0 :(得分:0)

这可能是可能的答案,但我不确定是否正确,请告诉我我是否错了。

response = as.factor(as.numeric(train$label))

predictor = as.vector(as.numeric(pred))

library(pROC)

result = as.numeric(roc(response, predictor)$auc)

顺便说一句,由于pROC运行非常缓慢,有人可以帮助我将其转换为ROCR软件包吗?非常感谢:)