【发布时间】:2019-04-11 18:58:02
【问题描述】:
我正在尝试对两种不同的情况进行分类。因此,我构建了决策树、混淆矩阵并计算了准确性、敏感性和特异性。我运行我的程序 100 次,所以我有 100 个准确度、灵敏度和特异性值。
我现在要做的是用 AUC 绘制 ROC 曲线。我做了一些研究,所有这些例子都在讨论概率,我不知道这些到底是什么。
那么任何人都可以帮助我绘制这个吗? 我不知道我应该展示我的代码的哪一部分,所以请随时询问。
【问题讨论】:
我正在尝试对两种不同的情况进行分类。因此,我构建了决策树、混淆矩阵并计算了准确性、敏感性和特异性。我运行我的程序 100 次,所以我有 100 个准确度、灵敏度和特异性值。
我现在要做的是用 AUC 绘制 ROC 曲线。我做了一些研究,所有这些例子都在讨论概率,我不知道这些到底是什么。
那么任何人都可以帮助我绘制这个吗? 我不知道我应该展示我的代码的哪一部分,所以请随时询问。
【问题讨论】:
您可以使用像 pROC 这样的包,这可能比自己创建它更容易。您使用 roc() 函数创建一个 roc 对象,然后使用 plot() 绘制对象并创建 ROC 曲线。
此外,听起来您的处理方式并不正确。 ROC 曲线是根据您模型的可能概率范围内的不同切点(即在 0 和 1 之间的切点)获取的灵敏度和特异性值计算得出的。您无需创建 100 组模型预测,只需一个模型即可够了。
试试这样的方法,其中 y 是您的响应变量,p 是您的模型输出的概率值向量:
plot(roc(y, p)), print.auc = TRUE)
【讨论】: