TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area,

https://www.zhihu.com/question/30643044

T/F表示 true/false  表示预测的是不是对的
P/N表示 positive/negative  表示实际数据是正样本还是负样本
P/N表示 positive/negative  表示预测数据是正样本还是负样本
 
TP: 预测为1, 实际为1,预测正确
FP: 预测为1, 实际为0,预测错误
TN: 预测为0,实际为0,预测正确
FN: 预测为0, 实际为1,预测错误

True Positive (真正, TP)被模型预测为正样本,实际为正样本;

False Positive (假正, FP)被模型预测为正样本, 实际为负样本;

True Negative(真负 , TN)被模型预测为负样本,实际为负样本 ;

False Negative(假负 , FN)被模型预测为负样本,实际为正样本;

举例:

实际样本标签  actual_issame             = [1 1 1 1 1 1 0 0 0 0 0]

预测样本结果  predict_issame            = [1 1 0 1 0 1 1 0 0 0 0]

实际样本标签  actual_issame_not       = [0 0 0 0 0 1 1 1 1 1 1]

预测样本结果  predict_issame_not      = [0 0 1 0 1 0 0 1 1 1 1]

正样本个数为6

负样本个数为5

TP + FN = 正样本个数为6

FP + TN = 负样本个数为5

TP = 4  TN = 4  FP = 1  FN = 2

贴一段计算代码

predict_issame = np.less(dist, threshold)
tp = np.sum(np.logical_and(predict_issame, actual_issame))
fp = np.sum(np.logical_and(predict_issame, np.logical_not(actual_issame)))
tn = np.sum(np.logical_and(np.logical_not(predict_issame), np.logical_not(actual_issame)))
fn = np.sum(np.logical_and(np.logical_not(predict_issame), actual_issame))

tpr = 0 if (tp+fn==0) else float(tp) / float(tp+fn)
fpr = 0 if (fp+tn==0) else float(fp) / float(fp+tn)
acc = float(tp+tn)/dist.size
return tpr, fpr, acc

以上面的为例

TP = 4  TN = 4  FP = 1  FN = 2

tpr = TP /(TP + FN)= 4/(4+2) = 66.7%

fpr = FP /(FP + TN)= 1 / (1+4) = 20%

acc = (tp+tn) / (总的样本个数) = (4+4) / 11 = 72.7%

True Positive Rate(真正率 , TPR)或灵敏度(sensitivity) 
   TPR = TP /(TP + FN)

True Negative Rate(真负率 , TNR)或特指度(specificity) 
   TNR = TN /(TN + FP)

False Positive Rate (假正率, FPR) 
   FPR = FP /(FP + TN)

False Negative Rate(假负率 , FNR) 
   FNR = FN /(TP + FN)

还有另外两个评价指标,针对正样本的评价指标

准确率precision: TP/ (TP+FP) 预测为正样本中有多少是真正的正样本
召回率recall: TP/ (TP +FN) 正样本有多少被成功预测为正样本
错误接受率: FAR: 同FPR 

ROC曲线: TPR与FPR博弈的过程曲线,在不同阈值判决下

分类器希望的是TPR越大,FPR越小,

降低阈值可以使TPR变大,FPR也会越大

提高阈值可以降低FPR,但是TPR会降低

实际中需要根据实际场景进行合理选择阈值,

比如在人脸识别支付的时候,对FPR比较敏感,FPR越小,错误接收的用户可能性越小,用户的钱财越安全, 这个时候,可以提高阈值,降低FPR,TPR也会下降(用户体验会下降)。

在如精准营销领域的商品推荐模型,模型目的是尽量将商品推荐给感兴趣的用户,若用户对推荐的商品不感兴趣,也不会有很大损失,因此此时TPR相对FPR更重要,这个时候可以降低阈值。

 

TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area,的更多相关文章

  1. 从TP、FP、TN、FN到ROC曲线、miss rate、行人检测评估

    从TP.FP.TN.FN到ROC曲线.miss rate.行人检测评估 想要在行人检测的evaluation阶段要计算miss rate,就要从True Positive Rate讲起:miss ra ...

  2. Precision,Recall,F1的计算

    Precision又叫查准率,Recall又叫查全率.这两个指标共同衡量才能评价模型输出结果. TP: 预测为1(Positive),实际也为1(Truth-预测对了) TN: 预测为0(Negati ...

  3. 目标检测的评价标准mAP, Precision, Recall, Accuracy

    目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 A ...

  4. 评价指标整理:Precision, Recall, F-score, TPR, FPR, TNR, FNR, AUC, Accuracy

    针对二分类的结果,对模型进行评估,通常有以下几种方法: Precision.Recall.F-score(F1-measure)TPR.FPR.TNR.FNR.AUCAccuracy   真实结果 1 ...

  5. 机器学习基础梳理—(accuracy,precision,recall浅谈)

    一.TP TN FP FN TP:标签为正例,预测为正例(P),即预测正确(T) TN:标签为负例,预测为负例(N),即预测正确(T) FP:标签为负例,预测为正例(P),即预测错误(F) FN:标签 ...

  6. 查准与召回(Precision & Recall)

    Precision & Recall 先看下面这张图来理解了,后面再具体分析.下面用P代表Precision,R代表Recall 通俗的讲,Precision 就是检索出来的条目中(比如网页) ...

  7. 机器学习--如何理解Accuracy, Precision, Recall, F1 score

    当我们在谈论一个模型好坏的时候,我们常常会听到准确率(Accuracy)这个词,我们也会听到"如何才能使模型的Accurcy更高".那么是不是准确率最高的模型就一定是最好的模型? 这篇博文会向大家解释 ...

  8. Handling skewed data---trading off precision& recall

    preision与recall之间的权衡 依然是cancer prediction的例子,预测为cancer时,y=1;一般来说做为logistic regression我们是当hθ(x)>=0 ...

  9. 通过Precision/Recall判断分类结果偏差极大时算法的性能

    当我们对某些问题进行分类时,真实结果的分布会有明显偏差. 例如对是否患癌症进行分类,testing set 中可能只有0.5%的人患了癌症. 此时如果直接数误分类数的话,那么一个每次都预测人没有癌症的 ...

随机推荐

  1. 深入理解Linux内核-中断和异常

    Linux内核代码查看 http://androidxref.com/ 中断:被定义位一个事件,它能改变处理器执行指令的顺序.它对应硬件(CPU.其他硬件设备)电路产生的电信号. 同步中断:指令执行时 ...

  2. HTML5学习笔记(十四):变量作用域

    在JavaScript中,用var申明的变量实际上是有作用域的. 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: function foo() { var x ...

  3. HTML5学习笔记(十一):JavaScript基础

    JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中: <head> <script> alert('He ...

  4. html+css+jQuery+JavaScript实现tab自动切换功能

    tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  5. linespace函数

    numpy.linspace numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source] ...

  6. Node.js学习笔记(6)--异步变同步

    说明(2017-5-3 14:59:03): 1. 异步变同步: var fs = require("fs"); var documents = []; fs.readdir(&q ...

  7. nginx servername配置域名网站可以正常登录,servername配置IP+Port却无法正常登录

    由于业务的原因,需要将网站从通过域名访问变换为通过IP+PORT的访问方式: 以前的配置: server { listen ; server_name wx.xxxx.com; } 以前的登录页面: ...

  8. Java中LinkedList实现原理

    数据结构 LinkedList是基于链表结构实现,所以在LinkedList类中包含了first和last两个指针(类型为Node).Node中包含了对prev节点.next节点的引用,这样就构成了双 ...

  9. WPF中自定义路由事件

    public class MyButtonSimple: Button { // Create a custom routed event by first registering a RoutedE ...

  10. C# 中的await

    今天看代码遇到了很多await,梳理一下await的用法. await只针对awaitable对象,经常和Task一起使用,主要用法如下: var task = RunAsync(); //开始执行异 ...