r - 如何计算twoClassSummary下的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)
我的问题是:如何计算 AUC 的pred
?
我试过 prSummary、ROCR 和 pROC,没有用,当 obs 和 pred 都完全相同(水平方面)时,我似乎无法计算 AUC。
我想知道我是否可以使用 AUC 作为指标进行训练,我怎么不能显示 AUC?
ps
> levels(train$label)
[1] "classA" "classB"
> levels(as.factor(pred))
[1] "classA" "classB"
顺便说一句,我正在做的是:用插入符号拟合多个算法并按 AUC 对它们进行排名,然后我可以选择最佳算法(基于 AUC)。
*可重现的例子:
火车套装:鸢尾花
特征 g1:前 2 个特征
特征 g2:最后 2 个特征
种子:123*
解决方案
这可能是可能的答案,但我不确定它是否正确,如果我错了,请告诉我。
response = as.factor(as.numeric(train$label))
predictor = as.vector(as.numeric(pred))
library(pROC)
result = as.numeric(roc(response, predictor)$auc)
顺便说一句,因为 pROC 运行速度很慢,任何人都可以帮我在 ROCR 包下转换它吗?多谢 :)
推荐阅读
- java - 如何通过 Java Main 方法运行或启动 Play 框架项目
- python - 大小为 x 的 1 的二维阵列菱形
- asp.net-mvc - ASP.NET Core Identity 是否使用会话进行身份验证?
- android - 获取在 Oreo 后在前台打开的应用程序
- amazon-web-services - Kubernetes AWS EKS 负载均衡器未配置
- python - 在turtle中调用方法时python中止
- node.js - 如何将记录移动到另一个集合?
- windows - 为什么在windows中复制和粘贴会更改长文本中的符号?
- php - 浏览服务器在 CKeditor 中无法使用 CKFinder
- c++ - 有谁知道如果在错误的用户下运行,至少有一个 C++/Windows 函数将不起作用?