gpt4 book ai didi

r - R中的3类AUC计算(pROC包)

转载 作者:行者123 更新时间:2023-11-30 08:44:27 24 4
gpt4 key购买 nike

我在 R 中遇到了一个 3 类 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 包的正确方法吗?
非常感谢!!!
< br/>一些相关引用:
pROC 包:http://www.inside-r.org/packages/cran/pROC/docs/multiclass.roc
Hand & Till(2001) 原始论文:http://link.springer.com/article/10.1023%2FA%3A1010920819831

最佳答案

我知道这个问题相对较旧,但我有一个解决方案:

# Starting validation code
library(HandTill2001)

auc(multcap(
response = iris$Species,
predicted = as.matrix(pre)
))

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

关于r - R中的3类AUC计算(pROC包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com