如何获取 ROC 曲线中 x 轴(FPR)和 y 轴(TPR)的值

Posted

技术标签:

【中文标题】如何获取 ROC 曲线中 x 轴(FPR)和 y 轴(TPR)的值【英文标题】:How do I get the values of x-axis(FPR) and y-axis(TPR) in ROC curve 【发布时间】:2020-04-04 12:05:40 【问题描述】:

我正在尝试使用plotly.js 和在 R 中获得的值制作 ROC 曲线。

plotly 中,我必须填写值(x 轴,y 轴)来制作绘图。

但是,当我使用逻辑回归函数glmmultinom(在nnet 包中)时,我不知道如何获取值。

df <- data.frame(age = c(10, 20, 30, 40, 50),height = c(150, 161, 141, 155, 180), house = c("0", "0", "0", "1", "1"))
smp_size <- floor(nrow(df) * (0.6))
train_idx <- sample(seq_len(nrow(df)), size = smp_size)

train <- df[train_idx, ]
validation <- df[-train_idx, ]

validation_x <- validation[c("age", "height")]
validation_y <- validation[["house"]]

m <- glm(house ~ age + height, data = train, family = 'binomial')
y_pred <- predict(m, validation_x)

library(plotROC)
plotROC(validation_y, y_pred)

我想知道如何获取ROC曲线中x轴(FPR)和y轴(TPR)的值

谢谢。

【问题讨论】:

哦!我不知道这个功能。感谢您的有用回答! 【参考方案1】:

使用包pROC中的函数roc()

# install.packages("pROC")
library(pROC)
my.roc <- roc(validation_y, y_pred)

roc() 返回一个记录特异性(x 轴)、敏感性(y 轴)、阈值、AUC 和其他信息的列表。您可以使用$ 提取它们:

my.roc$specificities
my.roc$sensitivities

【讨论】:

以上是关于如何获取 ROC 曲线中 x 轴(FPR)和 y 轴(TPR)的值的主要内容,如果未能解决你的问题,请参考以下文章

Python机器学习:roc_curve()生成ROC曲线

ROC 曲线和 libsvm

从 ROC 曲线获取阈值

ggplot2-ROC曲线美化

在 R 中的 ggplot 中访问 roc 曲线的 TPR 和 FPR

如何解释决策树的 ROC AUC 曲线的阈值?