首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nnet模型计算AUC

从nnet模型计算AUC
EN

Stack Overflow用户
提问于 2017-10-23 14:20:17
回答 1查看 2.3K关注 0票数 2

作为背景,我正在使用nnet软件包构建一个简单的神经网络。

我的数据集具有许多因素和连续变量特性。为了处理连续变量,我应用了scalecenter,它们将每个变量的平均值缩小,并除以其SD。

我试图根据神经网络模型的结果生成一个ROC & AUC图。

下面是用于构建我的基本神经网络模型的代码:

代码语言:javascript
复制
model1 <- nnet(Cohort ~ .-Cohort, 
           data = train.sample,
           size = 1)

为了得到一些预测,我调用以下函数:

代码语言:javascript
复制
train.predictions <- predict(model1, train.sample)

现在,将train.predictions对象分配给一个由0&1值组成的大型矩阵。我想要做的是,得到每个预测的类概率,这样我就可以使用pROC包绘制一个ROC曲线。

因此,我尝试在我的预测函数中添加以下参数:

代码语言:javascript
复制
train.predictions <- predict(model1, train.sample, type="prob")

但我发现了一个错误:

match.arg(type)中的错误:'arg‘应该是“raw”、“class”之一

如何从输出中获取类概率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-23 14:35:20

假设您的测试/验证数据集在train.test中,并且train.labels包含真正的类标签:

代码语言:javascript
复制
train.predictions <- predict(model1, train.test, type="raw")

## This might not be necessary:
detach(package:nnet,unload = T)

library(ROCR)

## train.labels:= A vector, matrix, list, or data frame containing the true  
## class labels. Must have the same dimensions as 'predictions'.

## computing a simple ROC curve (x-axis: fpr, y-axis: tpr)
pred = prediction(train.predictions, train.labels)
perf = performance(pred, "tpr", "fpr")
plot(perf, lwd=2, col="blue", main="ROC - Title")
abline(a=0, b=1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46891681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档