用简单实例理解ROC曲线和PR曲线

在理解PR曲线和ROC曲线前,需要先了解四个值的概念:

 

TP  (true positive):     正例正确地识别为正例

TN  (true negative):    负例正确地识别为负例

FP  (false positive):     负例错误地识别为正例

FN  (false negative):    正例错误地识别为负例

举个例子:一个样本中有100个样本,其中正例为猫,负例为其他动物,猫有70只,其他动物有30只,一共有50只猫被正确检测出来,一共有25只其他动物被正确检测出来,那么依此题意:

TP 50
TN 25
FP 5
FN 20

在理解这四个值以后,在继续理解P、R、FPR、FPR的概念

P(precision):        \frac{TP}{(TP+FP)}

R(recall):        \frac{TP}{TP+FN}

TPR  (true positive rate):    \frac{TP}{P}   =    \frac{TP}{TP+FN}

FPR  (false positive rate):    \frac{FP}{N}  =   \frac{FP}{FP+TN}

在对样本做测试时,通常会得到一个概率,例如,面对一个正例的检测样本,我们检测出有70%的概率认为它是正例,而当我们把阈值设置为50%时,那么这个样本就是正例被正确地识别为正例,那么TP=1,这样也许还是有点绕,接下来还是用一个具体例子解释:

样本 认为正例的概率
index1(负例) 30%
index2(负例) 40%
index3(正例) 60%
index4(正例) 70%
index5(正例) 80%

该例子中共五个样本,其中index1和index2是负例,其他index3、index4、index5是正例

只要认为是正例的概率大于阈值,那么系统就是认为是正例。

当我们阈值取10%时:把所有样本都认为是正例

        真实情况                                      预测情况
                正例                 负例
        正例                 TP=3                 FN=0
        负例                 FP=2                 TN=0

同理,当阈值取35%时:index1认为时负例,其他都是正例

        真实情况                                      预测情况
                正例                 负例
        正例                 TP=3                 FN=0
        负例                 FP=1                 TN=1

阈值取50%时:index1和index2认为时负例,其他为正例:

        真实情况                                      预测情况
                正例                 负例
        正例                 TP=3                 FN=0
        负例                 FP=0                 TN=2

阈值取90%时,全部样本都认为是负例

        真实情况                                      预测情况
                正例                 负例
        正例                 TP=0                 FN=3
        负例                 FP=0                 TN=2

以上阈值从10%、35%、50%、90%过程中,TP、TN、FP、FN都有唯一确定的值,这样也意味着P、R、FPR、TPR也都有唯一确定的值,这样便可做出概率阈值从(0,1)的P-R曲线以及ROC曲线了

你可能感兴趣的:(算法,机器学习,人工智能)