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