【问题标题】:ROC-AUC plot is in elbow shapeROC-AUC 图呈肘形
【发布时间】:2020-04-01 02:43:59
【问题描述】:

我想为我的逻辑回归模型创建 ROC 曲线,但我当前的代码没有给我传统的或期望的结果。下面是代码:-

over3 <- SMOTE(pol ~., data = train, perc.under = 150)
over3

set.seed(645)
logit_model4 <- glm(pol ~., data = over3, family = "binomial")
logit_model4
summary(logit_model4)

fitted.results4 <- predict(logit_model4, test, type = "response")
fitted.results4

fitted.results4 <- ifelse(fitted.results4 > 0.5, 1, 0)
fitted.results4

table(test$pol, fitted.results4)

library(pROC)

pim <- roc(response = test$pol, predictor = fitted.results3, partial.auc = c(100,90),
    partial.auc.correct = T, percent = T)
plot(pim)

结果图如下:-

但是,我希望情节的输出采用传统方式,即:-

希望有人能帮帮我

【问题讨论】:

  • 看起来你只有一个预测变量,而且它是二分法的。虽然结果没有错,但您可能想尝试向模型中添加更多预测变量并查看 AUC 是否增加。无论如何,您应该在问题中提供更多信息,至少是您的模型调用。
  • 'over3 0.5,1,0)fitted.results4'以上是我的训练和预测代码。
  • 不在这里!阅读 R 代码太难了。考虑一下这里的人并使用该信息编辑您的问题。
  • 您使用fitted.results3 构建曲线,我假设您的意思是fitted.results4

标签: r rstudio roc


【解决方案1】:

不要对结果进行二分法!

fitted.results4 <- ifelse(fitted.results4 > 0.5, 1, 0)

ROC 曲线是通过评估每个可能的阈值来构建的。通过对结果进行二分法,您可以防止这种情况发生。

您应该直接使用定量预测概率:

fitted.results4 <- predict(logit_model4, test, type = "response")
library(pROC)
pim <- roc(response = test$pol, predictor = fitted.results4, partial.auc = c(100,90), partial.auc.correct = T, percent = T)
plot(pim)

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2019-07-08
    • 2017-10-25
    • 2012-04-15
    • 2020-02-23
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    相关资源
    最近更新 更多