Perfcurve积极的类

时间:2015-06-30 22:33:06

标签: matlab plot roc

我正在使用matlab perfcurve [X,Y,T,AUC] = perfcurve(标签,分数,posclass)

我对以下内容感到困惑。首先是一个基本的例子,然后我将跟进我的问题

a)[X,Y,T,AUC] = perfcurve([1 1 1 0 0 0],[。9 .9 .9 .1 .1 .1],1)产生AUC = 1

b)[X,Y,T,AUC] = perfcurve([0 0 0 1 1 1],[。9 .9 .9 .1 .1 .1],1)产生AUC = 0

  1. 当我提供正面课程(laebl = 1)时,它总是必须有更高的分数吗?
  2. 如果我使阳性等级(标签= 1)得分较低,如上文b)所示,将翻转ROC曲线(镜像与正常ROC曲线相反)
  3. 我用我的数据生成的曲线如下所示。 图1是分数的分布。类以红色和蓝色显示。请注意,label = 1(红色)类的得分较低。 红色 - >标签= 1 蓝 - > label = 0

    下一张图片是生成的ROC曲线。它基本上是我想要看到的翻转图像。难道我做错了什么?或者这种行为是否与具有低分数的label = 1类有关?

    enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

当您在第三个参数中写入1时,您将类标签定义为正(1),然后perfcurve通过查看您在第二个参数中提供的概率/分数来计算fpr和tpr,关系式你定义的正类标签(1)。每个数据的分数定义它是TP还是FP(你已经定义了正类),所以如果你如上所示交换分数,而不改变正类的类标签,每个TP都变成FP,因为现在处于用于计算ROC曲线的阈值的相反侧。这就是为什么情节是你期望的镜像。