目录

一、基本概念

P和R分别代表什么

TP FP TN FN的意思

 P和R的定义

PR曲线的评估方法

二、如何绘制PR曲线

代码:


一、基本概念

P和R分别代表什么

P:查准率,也称准确率

R:查全率,也称召回率

TP FP TN FN的意思

TP(true positive):真正例。即预测结果为正例,真实结果也为正例。

FP(false positive):假正例。即预测结果为正例,真实结果为反例。

TN(true negative):真反例。即预测结果为反例,真实结果为反例。

FN(false negative):假反例。即预测结果为反例,真实结果为正例。

 P和R的定义

查准率P:

P=\frac{TP}{TP+FP}

查全率R:

R=\frac{TP}{TP+FN}

P和R是一对矛盾的度量,P高时往往R偏低,R高时往往P偏低。

PR曲线的评估方法

1.若曲线a完全“包住”曲线b,则a性能优于b。

2.若曲线a和曲线b发生了相交,则无法比较。

3.比较曲线a和曲线b曲线下面积的大小。面积大则性能优。

4.比较“平衡点”。用的较少。

  “平衡点”(Break-Event Point,简称BEP)时P值和R值相同的时的取值。

 5.比较F1度量。更常用。

F1=\frac{2*P*R}{P+R}

二、如何绘制PR曲线

先确定一个阈值T,≥T则是正样例,<T为负样例。

通过设置T的数量n,可以得到n对P和R的值,以此来评估模型的好坏。

例如(网上找的例子):

代码:

import matplotlib.pyplot as plt
import numpy as np

if __name__=='__main__':
    TP=np.array([5,4,4,3,3,3,3,3,3,3])
    FN=np.array([0,1,1,2,2,2,2,2,2,2])
    FP=np.array([5,2,2,0,0,0,0,0,0,0])
    P=TP/(TP+FP)
    R=TP/(TP+FN)
    plt.plot(R, P)
    plt.xlabel('Recall')
    plt.ylabel('Precision')
    plt.show()

 结果如下:

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐