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. android 学习视频汇总

    1.java基础知识 http://www.eoeandroid.com/thread-333511-1-1.html 网易公开课-抽象编程:http://open.163.com/special/o ...

  2. ie6遮罩层兼容 100%高度的实现

    .black { position:absolute;width:100%;height:100%;opacity:0.5;filter:alpha(opacity=50);background:#0 ...

  3. Let's Encrypt申请免费SSL证书

    1.https的作用 安全,防止网站被劫持,数据被修改 2.Let's Encrypt是什么 Let's Encrypt是一个证书授权机构(CA),可以从Let's Encrypt获得网站域名的免费证 ...

  4. javascript基础拾遗(十二)

    1.javascript的单线程特性 在javascript中,所有的代码都是单线程的 因此所有的网络操作,浏览器事件,都必须是异步执行的,异步执行的逻辑是回调. function callback( ...

  5. quick3.3final版创建项目报错解决

    PHP Notice:  Undefined index: QUICK_V3_ROOT in 405,469,497,520,551这5行代码都访问了一个环境变量$_ENV['QUICK_V3_ROO ...

  6. pom.xml里发布和下载包

    1.下载包 在<project>标签中 <repositories> <repository> <id>nexus</id> <url ...

  7. Hive中小表与大表关联(join)的性能分析【转】

    Hive中小表与大表关联(join)的性能分析 [转自:http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html] 经常看到一些Hive优化的建议中说当 ...

  8. Natural Language Processing, 2017, Mar.29, Weekly Report

    Distributed Representations of Words and Phrases and their Compositionality T Mikolov, I Sutskever, ...

  9. (精品)微信支付android端

    PayingActivity.java public void WxPay(){ // new Thread(new Runnable() { // @Override // public void ...

  10. Deepin Linux修改Grub引导

    grub rescue> 模式修复 登录成功后, sudo upgrade-grub sudo install-grub /dev/sda 系统启动失败,修改fstab, 在grub系统选择界面 ...