注:本文是人工智能研究网的学习笔记

Precision和Recall都能够从下面的TP,TN,FP,FN里面计算出来。

几个缩写的含义

缩写 含义
P condition positive
N condition negative
TP true positive (with hit)
TN true negative (with correct rejection)
FP false positive (with false alarm, Type I error)
FN false negative (with miss, Type II error)

TP: 我认为是真的,结果确实是真的

TN: 我认为是假的,结果确实是假的

FP: 我认为是真的,结果是假的

FN: 我认为是假的,结果是真的

T / F: 表名我预测的结果的真假

P / N: 表名我所认为的真还是假

precision和recall的进一步解释

precision和accuracy的区别

简单的来说,给定一组测量点的集合:

精确(precision): 所有的测量点到测量点集合的均值非常接近,与测量点的方差有关。就是说各个点紧密的聚合在一起。

准确(accuracy): 所有的测量点到真实值非常接近。与测量点的偏差有关。

以上两个概念是相互独立的,因此数据点集合可以使accurate的,也可以使precise的,还可以都不是或者都是。

二元分类问题

from sklearn import metrics
y_pred = [0, 1, 0, 0]
y_true = [0, 1, 0, 1]
print(metrics.precision_score(y_true, y_pred)) # 1.0
print(metrics.recall_score(y_true, y_pred)) # 0.5 # beta值越小,表示越看中precision
# beta值越大,表示越看中recall
print(metrics.f1_score(y_true, y_pred)) # 0.666666666667
print(metrics.fbeta_score(y_true, y_pred, beta=0.5)) # 0.833333333333
print(metrics.fbeta_score(y_true, y_pred, beta=1)) # 0.666666666667
print(metrics.fbeta_score(y_true, y_pred, beta=2)) # 0.555555555556

将二元分类指标拓展到多类和或多标签问题中

from sklearn import metrics
y_pred = [0, 1, 2, 0, 1, 2]
y_true = [0, 2, 1, 0, 0, 1]
print(metrics.precision_score(y_true, y_pred, average='macro'))
print(metrics.recall_score(y_true, y_pred, average='micro')) print(metrics.f1_score(y_true, y_pred, average='weighted'))
print(metrics.fbeta_score(y_true, y_pred, beta=0.5, average='macro'))
print(metrics.precision_recall_fscore_support(y_true, y_pred, beta=0.5, average=None))

分类器评估方法:精确度-召回率-F度量(precision-recall-F_measures)的更多相关文章

  1. 准确率,召回率,F值,ROC,AUC

    度量表 1.准确率 (presion) p=TPTP+FP 理解为你预测对的正例数占你预测正例总量的比率,假设实际有90个正例,10个负例,你预测80(75+,5-)个正例,20(15+,5-)个负例 ...

  2. Recall(召回率)and Precision(精确率)

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/7668501.html 前言 机器学习中经过听到" ...

  3. 机器学习笔记--classification_report&精确度/召回率/F1值

    https://blog.csdn.net/akadiao/article/details/78788864 准确率=正确数/预测正确数=P 召回率=正确数/真实正确数=R F1 F1值是精确度和召回 ...

  4. 评估指标:准确率(Precision)、召回率(Recall)以及F值(F-Measure)

    为了能够更好的评价IR系统的性能,IR有一套完整的评价体系,通过评价体系可以了解不同信息系统的优劣,不同检索模型的特点,不同因素对信息检索的影响,从而对信息检索进一步优化. 由于IR的目标是在较短时间 ...

  5. 召回率(Recall),精确率(Precision),平均正确率

    https://blog.csdn.net/yanhx1204/article/details/81017134 摘要 在训练YOLO v2的过程中,系统会显示出一些评价训练效果的值,如Recall, ...

  6. 机器学习classification_report方法及precision精确率和recall召回率 说明

    classification_report简介 sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息. 主要 ...

  7. 正确率、召回率和 F 值

    原文:http://peghoty.blog.163.com/blog/static/49346409201302595935709/ 正确率.召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价 ...

  8. Andrew Ng机器学习课程笔记--week6(精度&召回率)

    Advice for applying machine learning 本周主要学习如何提升算法效率,以及如何判断学习算法在什么时候表现的很糟糕和如何debug我们的学习算法.为了让学习算法表现更好 ...

  9. 准确率、精确率、召回率、F1

    在搭建一个AI模型或者是机器学习模型的时候怎么去评估模型,比如我们前期讲的利用朴素贝叶斯算法做的垃圾邮件分类算法,我们如何取评估它.我们需要一套完整的评估方法对我们的模型进行正确的评估,如果模型效果比 ...

随机推荐

  1. mongodb 设置用户密码权限

    1 设置管理员账户 use admindb.createUser({ user: "useradmin", pwd: "adminpassword", role ...

  2. Java基础-Java中的堆内存和离堆内存机制

    Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  3. ZCMU 1894: Power Eggs

    http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1894 题意: 有M个鹰蛋,N层楼,鹰蛋的硬度是E,也就是说在1~E层楼扔下去不会碎,E+1层楼扔 ...

  4. Linux命令(六)Linux超级用户和管理组

    修改文件目录的所属组

  5. Flex 笔记整理 三

    1. Panel, TitleWindow PopUpManager 透明 用一个类,这个类里引用一个组件, P如 Panel, TitleWindow等, 利用PopUpManager来弹出显示.  ...

  6. Export SQLite data to Excel in iOS programmatically(OC)

    //For the app I have that did this, the SQLite data was fairly large. Therefore, I used a background ...

  7. iOS 解决汉字联想输入,导致字数限制失效的问题

    字数限制的问题点在于汉语可以无限汉语联想词汇,导致字数限制对于汉字输入就失去的作用.我们的做法是监听键盘联想出来的汉子,将其统计: 1 在viewDidLoad里面监听文本变化的通知 - (void) ...

  8. c#调用c++ dll 入坑记录

    1.DLL引用坑 [DllImport("NetDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConve ...

  9. ASP.NET MVC环境下实现一个网站多个网站模板的方法

    asp.net mvc下实现多个网站模板的方法,让ASP.NET一个网站有多套网站模板,不用的场景下使用不用的mvc 模版.  比如有默认,红,蓝,绿几种网站模板,客户可以根据自己喜好选择自己喜欢的网 ...

  10. jdk8 lambda表达式总结

    Java8 lambda表达式10个示例   1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnab ...