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. haproxy 配置https 同时技持443 80端口

    确定haproxy支持https [root@c01 sbin]# ldd haproxy |grep ssl libssl.so.10 => /usr/lib64/libssl.so.10 ( ...

  2. haproxy-1.7.7 源码安装

    安装一下依赖 yum install openssl-devel openssl 编译安装 make TARGET=linux2628 USE_OPENSSL=1 ADDLIB=-lz make in ...

  3. 菜鸟学Java(十二)——搭建一个完整的Java开发环境

    作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...

  4. HTTPS演变小图

    HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证这些隐私数据能加密传输,网景公司设计了SSL(Se ...

  5. LeetCode: Binary Search Tree Iterator 解题报告

    Binary Search Tree Iterator Implement an iterator over a binary search tree (BST). Your iterator wil ...

  6. Python 执行linux 命令

    # !/usr/bin/env python # -*- coding: utf-8 -* import os def main(): file_list = os.popen("ls&qu ...

  7. 【Python】微博自动抢红包

    # -*- coding: utf-8 -*- import requests import js2xml from lxml import etree headers = { # 这边cookie替 ...

  8. red hat enterprise linux 6

    i386(32位):http://rhel.ieesee.net/uingei/rhel-server-6.3-i386-dvd.iso迅雷快传:http://kuai.xunlei.com/d/PF ...

  9. jsp----标签编程(JSTL)

    标签编程简介 JSP的开发是在HTML代码中嵌入了大量的Java代码,但是这样一来会使得JSP页面中充满了Java程序,修改或维护起来非常的不方便, 定义一个简单的标签----空标签 要想实现一个标签 ...

  10. visualstudio学习

    https://docs.microsoft.com/zh-CN/visualstudio/ide/get-started-with-visual-studio