原文链接:http://blog.csdn.net/Lu597203933/article/details/41802155

之前写过一篇blog叫做机器学习实战笔记之非均衡分类问题:http://blog.csdn.net/lu597203933/article/details/38666699  其中对Precision和Recall及ROC都有所讲解,其中区别在于Precision,Recall, F-score,
MAP主要用于信息检索,而ROC曲线及其度量指标AUC主要用于分类和识别,ROC的详细介绍见上面的blog,这里的Precision、Recall和上篇blog的计算结果其实是一样的,只是这里从检索的角度进行理解。

一:Precision, Recall, F-score

       信息检索、分类、识别、翻译等领域两个最基本指标是召回率(Recall Rate)和准确率(Precision Rate------注意统计学习方法中precesion称为精确率,而准确率为accuracy 是分类正确的样本除以总样本的个数。),召回率也叫查全率,准确率也叫查准率,概念公式:

              召回率(Recall)=  系统检索到的相关文件 / 系统所有相关的文件总数;;;亦即预测为真实正例除以所有真实正例样本的个数

             准确率(Precision)=  系统检索到的相关文件 / 系统所有检索到的文件总数;;;亦即等于预测为真实正例除以所有被预测为正例样本的个数

图示表示如下:


注意:

( 1 ) 准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。

(2)如果是做搜索,那就是保证召回的情况下提升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回。

 所以,在两者都要求高的情况下,可以用F1(或者称为F-score)来衡量。计算公式如下:

                     F1= 2 * P * R / (P + R)

(1) 公式基本上就是这样,但是如何算图1中的A、B、C、D呢?这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用用现成的语料。当然,还有一个办法,找个一个比较成熟的算法作为基准,用该算法的结果作为样本来进行比照,这个方法也有点问题,如果有现成的很好的算法,就不用再研究了。

(2)    形象直观的理解就是Recall要求的是全,宁可错杀一千,不能放过一人,这样Recall就会很高,但是precision就会最低。比如将所有的样本都判为正例,这是Recall就会等于1,但是很多负样本都被当做了正例,在某些情况就不适用,比如邮件过滤,此时要求的是准确率,不能是召回率,将所有的邮件都当做垃圾邮件肯定是最坏的结果(此时Recall=1)。

如果没有证据证明你有罪,那么你就有罪,召回率会很高;如果没有证据证明你有罪,那么你就无罪,召回率会很低,不全,很多人逍遥法外;

二:MAP

MAP:全称mean average precision(平均准确率)。mAP是为解决P,R,F-measure的单点值局限性的,同时考虑了检索效果的排名情况。

计算如下:

假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题 2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP=(0.83+0.45)/2=0.64。”

参考文献:

1:http://blog.csdn.net/marising/article/details/6543943信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC

2:http://blog.sina.com.cn/s/blog_662234020100pozd.htmlMAP(Mean Average Precision)

3:http://wenku.baidu.com/view/ef91f011cc7931b765ce15ec.html

统计:mAP的中文意思的更多相关文章

  1. JAVA 统计字符串中中文,英文,数字,空格的个数

    面试题:输入一行字符,分别统计出其中英文字母.中文字符.空格.数字和其它字符的个数 可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为'0'~'9'之间,英文字母为'a'~'z'或 ...

  2. R学习:《机器学习与数据科学基于R的统计学习方法》中文PDF+代码

    当前,机器学习和数据科学都是很重要和热门的相关学科,需要深入地研究学习才能精通. <机器学习与数据科学基于R的统计学习方法>试图指导读者掌握如何完成涉及机器学习的数据科学项目.为数据科学家 ...

  3. JAVA 统计字符串中中文,英文,数字,空格,特殊字符的个数

    引言 可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为'0'~'9'之间,英文字母为'a'~'z'或'A'~'Z'等,Java判断一个字符串是否有中文是利用Unicode编码来判 ...

  4. Charles Map Local 中文显示乱码问题

    最近在迁移客户端的业务,用React Native实现,在用本地数据测试Android的时候,遇到到中文乱码的问题.是因为编码问题. 一.首先看看文件编码是否是UTF-8,我的电脑是安装了Sublim ...

  5. 字母统计-map

    题目描述 输入一行字符串,计算其中A-Z大写字母出现的次数 输入描述: 案例可能有多组,每个案例输入为一行字符串. 输出描述: 对每个案例按A-Z的顺序输出其中大写字母出现的次数. 示例1 输入 复制 ...

  6. PKU2418_树种统计(map应用||Trie树)

    Description Hardwoods are the botanical group of trees that have broad leaves, produce a fruit or nu ...

  7. 统计map上的read数量

    samtools flagstat /SRA111111/SRR111222/accepted_hits.bam 78406056 + 0 in total (QC-passed reads + QC ...

  8. 对Link Map File的初步认识

    什么是Link Map File Link Map File中文直译为链接映射文件,它是在Xcode生成可执行文件的同时生成的链接信息文件,用于描述可执行文件的构造部分,包括了代码段和数据段的分布情况 ...

  9. 软件工程-构建之法 WordCount小程序 统计文件中字符串个数,单词个数,词频,行数

    一.前言 在之前写过一个词频统计的C语言课设,别人说你一个大三的怎么写C语言课程,我只想说我是先学习VB,VB是我编程语言的开始,然后接触到C语言及C++:再后来我是学习C++,然后反过来学习C语言, ...

随机推荐

  1. 【codeforces 510B】Fox And Two Dots

    [题目链接]:http://codeforces.com/contest/510/problem/B [题意] 让你在一个二维的方格里面找环; 两个点有相邻的边它们才是相连的; 有环YES,没环NO ...

  2. Awesome Python(中文对照)

    python中文资源大全:https://github.com/jobbole/awesome-python-cn A curated list of awesome Python framework ...

  3. 洛谷—— P2733 家的范围 Home on the Range

    https://www.luogu.org/problem/show?pid=2733 题目背景 农民约翰在一片边长是N (2 <= N <= 250)英里的正方形牧场上放牧他的奶牛.(因 ...

  4. 【2014秋季版】【辛星php】【0】清晰的认识一下PHP语言

    *********************PHP情结***************** 1.假设您和我经历非常相似,也可能会有这种PHP情结,为什么呢.由于我最先学习的是Java.然后学习了C++,开 ...

  5. DirectX11 学习笔记6 - 使用D3DXMATH数学库的一个样例

    这个样例是在之前的样例基础上 .把之前d3dx10math数学库换成了最新的d3dxmath.长处就不说了.先上效果图 所有代码.以及效果文件 文件结构 所有代码: 依照上图的文件顺序 #pragma ...

  6. &lt;转&gt;Openstack Ceilometer监控项扩展

    Openstack ceilometer主要用于监控虚拟机.服务(glance.image.network等)和事件.虚拟机的监控项主要包含CPU.磁盘.网络.instance.本文在现有监控项的基础 ...

  7. SGU - 403 - Scientific Problem (水)

    403. Scientific Problem Time limit per test: 0.25 second(s) Memory limit: 65536 kilobytes input: sta ...

  8. hdu 4941 Magical Forest (map容器)

    Magical Forest Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  9. phoenixframe自己主动化測试平台对div弹出框(如弹出的div登陆框)的处理

    package org.phoenix.cases; import java.util.LinkedList; import org.phoenix.action.WebElementActionPr ...

  10. 粗结MySql数据库基础知识点之一

    首先弄什么是数据库? 数据库就是用来存储和管理数据的仓库. 数据库存储数据的优点: 1.可存储大量的数据  2.方便检索  3.保持数据的一致性,完整性  4.安全 可共享  5.通过组合分析,可以产 ...