【发布时间】:2020-02-02 17:01:43
【问题描述】:
我正在计算 R 中模型的 AUC。该模型已经过训练以预测两级因素(好/坏)。它已应用于具有三级结果(好/坏/缺失)的数据。我对得分部分很好。我根据每个观察的一组预测变量得到一个概率。
我不明白的部分是当我使用 roc(data$label, data$score) 计算 AUC 时会发生什么,因为现在 roc$label 有 3 个级别(好/坏/缺失),但分数是根据只有 2 个的数据训练的水平(好/坏)。新级别被忽略了吗?我是否应该从数据中手动排除所有此类观察结果以获得准确的 AUC 测量值?
data <- structure(list(label = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L), .Label = c("missing",
"good", "bad"), class = "factor"), score = c(0.151147571051044,
0.0411329810171418, 0.0688491931089625, 0.0457818202643564, 0.0411038297454905,
0.0652004019004794, 0.105964115208592, 0.0538514549969684, 0.0415476305130247,
0.0533831523731155, 0.0639788335617257, 0.0434341986489527, 0.0520826001358534,
0.0642210548642832, 0.0536219837901353, 0.0415821872079014, 0.0416555537422,
0.0491937562992912, 0.0469082976746886, 0.0538194884632293)), row.names = c(NA,
-20L), class = c("tbl_df", "tbl", "data.frame"))
roc(data$label, data$score)
【问题讨论】:
-
为什么票数接近?这是一个明确的编程问题(并且是一个很好的问题),并且在 stats.SE 上将完全偏离主题。
标签: r roc proc-r-package