不管是声纹识别和图像识别,以及指纹识别,在评价模型时总要用到这三个指标。下边说下这三个指标的含义。
1、错误接受率 (FAR-False Acceptance Rate)
FAR = nontarget_is_target / ( target_is_target + nontarget_is_target )
另一种比较容易理解的表示方式:
FAR = NFA / NIRA
式中 NIRA 代表的是类间测试次数,既不同类别间的测试次数,打比方如果有1000个识别 模型,有1000个人要识别,而且每人只提供一个待识别的素材,那 NIRA=1000*(1000-1) 。NFA是错误接受次数。
2、错误拒绝率 (FRR-False Rejection Rate)
FRR = target_is_nontarget / ( target_is_nontarget + nontarget_is_nontarget )
比较容易理解的表示方式:
FRR = NFR / NGRA
上式中NGRA是类内测试次数,既同类别内的测试次数,打比方如果有1000个识别模型, 有1000个人要识别, 而且每人只提供一个待识别的素 材,那 NGRA=1000,如果每个人提供N张图片,那么 NGRA=N*1000 。NFR是错误拒绝次数。
3、等错误率 (EER-Equal Error Rate)
取一组0到1之间的等差数列,分别作为识别模型的判别界限,既坐标x轴,画出FFR和FAR的坐标图,交点就是EER值。
4、简单的程序实现
假如我们可以得到用户与不同模型之间的相似度,每个用户训练一个模型,提供两个素材 用于识别验证,如下图:

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltclass_in=[] #定义类内相似度列表
class_each=[] #定义类间相似度列表data = pd.read_csv('filepath.csv') #这里以结果在csv文件为例
user_id_length = len(data.values[0,1:]) #要识别的数量
model_id_length = len(data.values[1:,0])#计算出模型ID数量for i in range(user_id_length):for j in range(model_id_length):#需要识别的用户id和模型id一样,就认为是类内测试,否则是类间测试if data.values[i+1][0]==data.values[0][j+1]:class_in.append(np.float(data.values[i+1][j+1]))else:class_each.append(np.float(data.values[i+1][j+1]))
FRR = []
FAR = []
thresld=np.arange(0.1,0.9,0.01) #生成模型阈值的等差列表
eer = 1
for i in range(len(thresld)):frr = np.sum(class_in < thresld[i])/len(class_in)FRR.append(frr)far = np.sum(class_each > thresld[i])/len(class_each)FAR.append(far)if (abs(frr-far)<0.02): #frr和far值相差很小时认为相等eer = abs(frr+far)/2plt.plot(thresld,FRR,'x-',label='FRR')
plt.plot(thresld,FAR,'+-',label='FAR')
plt.grid(True)
plt.legend(bbox_to_anchor=(1.0,1),loc=1,borderaxespad=0.)
plt.show()
print ('EER is: ',eer)

这里我随机生成了一些数据,跑出的效果图如下:

因为是随机生成的数据,所以EER的值在0.5左右。

错误接受率 (FAR), 错误拒绝率(FRR), 等错误率(EER)相关推荐

  1. 错误接受率 (FAR), 错误拒绝率(FRR), 等错误率(EER)代码简易实现

    一.FAR FRR 计算方式一: 1.错误接受率 (FAR-False Acceptance Rate)       FAR = nontarget_is_target / ( target_is_t ...

  2. 机器学习性能度量(2):错误接受率 (FAR), 错误拒绝率(FRR),EER计算方法,python实现

    上一篇博文中讨论了两种常用的性能度量查准率(precision)查全率(recall,也叫召回率)对应的P-R图与真正例率(TPR),假正例率(FPR)对应的ROC图.详情请看https://blog ...

  3. Oracle RAC错误之--oifcfg错误案例

    Oracle RAC错误之--oifcfg错误案例 系统环境: 操作系统:RedHat EL5 Cluster: Oracle GI(Grid Infrastructure) Oracle:  Ora ...

  4. syntaxerror是什么错误_【第1643期】自定义错误及扩展错误

    前言 [第1641期]异常处理,"try..catch"的续集来了.今日早读文章由@LeviDing授权分享. 正文从这开始-- 当我们在进行开发的时候,通常需要属于我们自己的错误 ...

  5. 什么是错误的幻数错误?

    本文翻译自:What's the bad magic number error? What's the "Bad magic number" ImportError in pyth ...

  6. error aborting mysql,mysql错误1067,mysql1067错误aborting

    mysql错误1067,mysql1067错误aborting,mysql启动错误1067进程意外终止的解决方法 1.mysql主从复制中的从服务器 2.Windows Server 2008 R2 ...

  7. python返回错误提示_python 错误处理

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  8. python中if错误-Python中错误和异常

    第1章 概念 错误 语法错误:代码不符合解释器或编译器的语法 逻辑错误:不完整或不合法的输入或者计算出现问题 异常:代码执行过程中,出现问题导致程序无法执行 程序遇到逻辑或算法问题 运行过程中计算机错 ...

  9. let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var

    事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容. 大概十年前, Brendan Eich就决定修复这个问题, 于是他添加了一个新的 ...

最新文章

  1. 后端开发面试自我介绍_字节跳动暑期实习后端开发面试经历
  2. 利用Linux的文件命名规范在Windows中建立“高权限”文件
  3. Spring Redis中使用Lua脚本实现高并发原子操作
  4. 最简单的nginx教程 - 如何把一个web应用部署到nginx上
  5. HDMI显示器驱动设计与验证
  6. web前端入门学习(纯干货)
  7. vs 2017 静态库 动态库 的初步使用
  8. 软件设计中架构和框架的区别
  9. 学习笔记(01):Oracle数据库-Oracle安装与配置
  10. 计算机关闭远程桌面 共享功能,win7旗舰版系统优化禁止用远程桌面共享的解决方法...
  11. Mac下常用按键符号⌘(command)、⌥(option)、⇧(shift)、⇪(caps lock)、⌃(control)、↩(return)、⌅(enter)
  12. 外星人m15键盘灯光设置_Alienware Command Center灯光软件高级设置
  13. APP消息推送(Push),竟然还有这么多你不知道的
  14. 2021期中考试总结
  15. 高分辨透射电镜(HRTEM)样品怎么制?看这一篇就够了
  16. Sleep函数--使得程序暂停一段时间(单位毫秒)
  17. python伪装ip_Python爬虫:使用IP代理池伪装你的IP地址继续爬
  18. 如何用c语言对隐函数求导,隐函数求导的方法
  19. 计算机无法识别3.0u盘启动,USB3.0接口不能识别U盘的解决方法
  20. 计算机专业专科可以进的国企,专科毕业生想进国企?这三大专业不要错过,成功率高达60%...

热门文章

  1. 对接IronSource广告(视频)
  2. ZipArchive(解压文件)
  3. Python:王老先生有块地
  4. C4D渲染插件阿诺德材质预设 Arnold Shader Suite for C4D v3
  5. 渗透测试:XSS实验集合
  6. ElasticSearch 高级
  7. 【TDengine】 TDengine时序数据库的快速入门总结
  8. 华为5c_华为荣耀畅玩5C什么配置参数?标配有什么?
  9. HackTheBox-baby WAFfles order
  10. 安装SQL Server 2000时出现“以前的某个程序安装已在安装……”