【问题标题】:3-class AUC calculation in R (pROC package)R 中的 3 类 AUC 计算(pROC 包)
【发布时间】:2013-12-29 22:22:14
【问题描述】:

我在 R 中遇到了一个 3-class ROC 分析的问题,得到了一个非常烦人的结果(见 here)。 现在我尝试使用不同的方法来解决它。数据为iris,分类器为多项逻辑回归,位于nnet 包中。代码如下:

# iris data (3-class ROC)
library(nnet)
library(pROC) # should be installed first: install.packages('pROC')
data(iris)
# 3-class logistic regression
model = multinom(Species~., data = iris, trace = F)
# confusion matrix (z1) & accuracy (E1)
z1 = table(iris[, 5], predict(model, data = iris))
E1 = sum(diag(z1)) / sum(z1)
z1;E1
#             setosa versicolor virginica
#  setosa         50          0         0
#  versicolor      0         49         1
#  virginica       0          1        49
#[1] 0.9866667

# prediction model (still training data set)
pre = predict(model, data = iris, type='probs')
# AUC measure
modelroc = mean(
    c(as.numeric(multiclass.roc(iris$Species, pre[,1])$auc),
        as.numeric(multiclass.roc(iris$Species, pre[,2])$auc),
        as.numeric(multiclass.roc(iris$Species, pre[,3])$auc)
    )
)
modelroc
## RESULT ##
# [1] 0.9803556

我的问题是:
这是使用pROC 包的正确方法吗?
非常感谢!!!

一些相关参考:
pROC包:http://www.inside-r.org/packages/cran/pROC/docs/multiclass.roc
Hand & Till(2001)原论文:http://link.springer.com/article/10.1023%2FA%3A1010920819831

【问题讨论】:

    标签: r machine-learning classification roc auc


    【解决方案1】:

    您正在取三个多类 AUC 的平均值,它们本身就是三个 ROC 曲线的 AUC 的平均值。这就是 9 AUC 的平均值。这可能是也可能不是您问题的正确答案,具体取决于您的实际问题,但由于您从未问过,因此很难回答。我只能说,这不是你提到的 Hand & Till(2001) 论文中描述的内容。

    【讨论】:

      【解决方案2】:

      我知道这个问题比较老,但我有一个解决方案:

      # Starting validation code
      library(HandTill2001)
      
      auc(multcap(
        response = iris$Species,
        predicted = as.matrix(pre)
      ))
      

      不幸的是,这给了我 0.9990667 的 AUC,因为我没有使用 pROC 包,所以并不真正支持绘图。但我也不确定应该如何使用包 pROC。

      【讨论】:

        猜你喜欢
        • 2016-08-30
        • 2012-05-11
        • 2022-01-13
        • 2019-07-28
        • 2011-06-21
        • 2016-09-12
        • 2018-05-14
        • 2013-05-08
        • 2011-12-10
        相关资源
        最近更新 更多