【问题标题】:Specificity of ROC curve plotting in reverse directionROC曲线反向绘制的特异性
【发布时间】:2017-09-13 20:57:24
【问题描述】:

我希望为我构建的 SVM 分类器绘制 ROC 曲线,但是当我绘制数据时,x 轴(特异性)从 1.0 -> -1.0 绘制,见下图。

为了绘制这个,我使用了以下内容:

> plot(roc(predictor = fit.down.Kernel$pred$Overshooting, response = fit.down.Kernel$pred$obs))

fit.down.Kernel 是我的模型,Overshooting 是我希望预测的目标特征。

显然我走错了路,谁能指出我正确的方向吗?

最终,我有一堆模型,我使用各种不同的数据集(上采样、下采样...)进行了训练,我希望使用 ROC 曲线直观地比较它们的性能。我想我需要先让轴正常工作,然后再进行多个绘图。

【问题讨论】:

  • 曲线在 1 和 0 之间。是什么让你觉得你显然走错了路?

标签: r machine-learning svm roc


【解决方案1】:

您可以在 R 中使用 ROCR 包。请参阅下面的代码并将您的预测与实际结果结合使用。

Prob.mod 是来自各种模型(1、2、3)的预测,而 y.test 是您的实际 Overshooting

使用 ROCR 的预测功能
prediction.mod1 <- prediction(prob.mod1, y.test) 
prediction.mod2 <- prediction(prob.mod2, y.test)
prediction.mod3 <- prediction(prob.mod3, y.test)

计算 AUC

auc.mod1=performance(prediction.mod1, "auc")@y.values)
auc.mod2=performance(prediction.mod2, "auc")@y.values)
auc.mod3=performance(prediction.mod3, "auc")@y.values)

绘制 AUC

plot(auc.mod1, ylim=c(0.1, 1))
plot(auc.mod2, col=2, add=TRUE)
plot(auc.mod3, col=3, add=TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 2016-02-04
    • 2019-02-27
    • 2021-03-03
    • 2017-09-07
    • 2013-08-10
    • 2012-01-01
    • 2017-09-11
    相关资源
    最近更新 更多