关于评价指标的理解(TPR,FPR,TAR,FAR,FRR,ERR)

人脸识别算法评估指标解析
本文深入探讨了人脸识别算法的评估指标,包括TPR、FPR、TAR、FAR、FRR、ERR以及ROC曲线和AUC的概念。通过实例解释了这些指标在人脸识别中的应用,并介绍了如何使用Python绘制ROC曲线。

    近期,一直在做人脸识别方面的研究,在阅读paper的时候,发现对一些指标认识不足,因此,从新学习认识算法的评价指标,非常感谢https://blog.youkuaiyun.com/liuweiyuxiang/article/details/81259492,学习到了很多。

由于在做人脸之前,做的是工业上的检测,对于工业上检测,常用指标为TPR(True Positive Rate),FPR(False Positive Rate),TPR以及FRP是在做分类、检测常用的指标分析,TPR为真正率,FPR为假正率,他们均是基于混淆矩阵的度量标准。

混淆矩阵

真阳性(True Positive Rate):分类器正确分类且本身为正例,为图上的15

真阴性(True Negative Rate):分类器正确分类且本身为负例,为图上的118

假阳性(False Positive Rate):分类器错误分类本身为负例,为图上的12

假阴性(False Negative Rate):分类器错误分类本身为正例,为图上的47

因此,由上述所知,TPR=TP/(TP+FN),即正确识别的正例数据占据总的正例数据的比例,为召回率;FPR=FP/(FP+TN),即实际值为负例数据,将负例数据预测为正例的百分比;

 

在了解了TPR、FPR以及混淆矩阵后,需要了解ROC曲线,即能直观的描述分类器的优劣,根据TPR以及FPR来绘制ROC曲线,如图所示,横坐标为FPR,纵坐标为TPR:

曲线离(0,1)越近的点分类器的效果越好,同样AUC(area under thecurve)即ROC曲线的下部面积,越大分类器越好。

 

在了解了TPR、FPR、ROC以及AUC的相关信息后,对于人脸识别的TAR、FAR、FRR以及ERR较更容易理解。

TAR(True Accept Rate)表示正确接受比例,FAR(False Accept Rate)表示错误接受比例,所谓的接受比例即在人脸验证过程中,两张图像被认为是同一个人

FAR:即在做人脸验证过程中,通常是将两张人脸映射到高维空间的高维向量,然后计算两个高维向量的相似度以及距离。一般认为两张人脸是同一人,那么相似度较高,不是同一个人相似度较低。通过给定一个阈值T,如果两张的人脸的相似度大于T,则被认为同一人脸,反之则为不同人。无论将T设置为任何值,均会出现FAR一定的错误接受比例,FAR即在比对不同人的图像时,把其中的图像当作为同一人的比例,FAR的比例越小越好。FAR=非同人相似度>T/非同人比较的次数。

TAR:在比对相同人图像的时候,把相同人图像识别正确的比例,即正确接受比例。TAR=同人相似度>T/同人比较的次数,相比于FAR相比,TAR越高意味着模型的鲁棒性越好。

FRR:错误拒绝率,FRR=同人相似度<T/同人相似度,FRR=1-TAR

EER:即等误率,即在某一值时,FRR=FAR

 

在阅读论文中,经常常见的指标为:TAR @ FAR=0.00100,之所以采用这样的指标是由于如上所示,不同的阈值对应着不同的FAR以及TAR。假如增大阈值,那么FAR的比例变小,同样TAR的比例也变小,FRR的比例增大。因此在做报告的时候,需要指定FAR的比例,即在相同错误接受比例下的TAR越大,即识别鲁棒性越强。

 

使用python绘制ROC曲线

常用的绘制ROC曲线是通过使用sklearn.metrics,包括计算召回率,精确率等,在绘制ROC曲线时,先求得评估得指标即调用metrics下的roc_curve,auc再去绘制,代码如下所示,

from sklearn.metrics import roc_curve, auc
###得到roc数据
# 数据准备
>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([1, 1, 2, 2])
>>> scores = np.array([0.1, 0.4, 0.35, 0.8])

# roc_curve的输入为
# y: 样本标签
# scores: 模型对样本属于正例的概率输出
# pos_label: 标记为正例的标签,本例中标记为2的即为正例
>>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
# 假阳性率
>>> fpr
array([ 0. ,  0.5,  0.5,  1. ])
# 真阳性率
>>> tpr
array([ 0.5,  0.5,  1. ,  1. ])
# 阈值
>>> thresholds
array([ 0.8 ,  0.4 ,  0.35,  0.1 ])

# auc的输入为很简单,就是fpr, tpr值
>>> auc = metrics.auc(fpr, tpr)
>>> auc
0.75


###绘制ROC曲线
import matplotlib.pyplot as plt
plt.figure()
lw = 2
plt.plot(fpr, tpr, color='darkorange',
         lw=lw, label='ROC curve (area = %0.2f)' % auc)
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

参考博客:

https://blog.youkuaiyun.com/liuweiyuxiang/article/details/81259492

<think>好的,我现在需要帮助用户查找关于FARFRR的图表或分析方法,特别是与生物识别或安全评估相关的内容。首先,我得确认用户的需求是什么。他们可能在进行生物识别系统的性能评估,或者在进行安全系统的分析,需要了解如何通过FARFRR来评估系统的准确性。 首先,我需要回顾一下FARFRR的定义。FAR是错误接受率,即系统错误地将未授权用户识别为授权用户的概率。而FRR是错误拒绝率,即系统错误地拒绝授权用户的概率。这两个指标通常用于评估生物识别系统的性能,比如指纹识别、面部识别等。 接下来,用户提到图表或分析方法,所以我需要介绍常见的图表类型,比如ROC曲线(受试者工作特征曲线)和DET曲线(检测错误权衡曲线)。这些图表能直观展示FARFRR之间的关系,帮助确定合适的阈值。 然后,分析方法方面,应该包括如何计算FARFRR,以及如何通过调整阈值来平衡两者。通常,阈值设置较低时,FAR会降低,但FRR会升高,反之亦然。因此,需要找到一个平衡点,比如EER(等错误率),即FARFRR相等时的值。 另外,用户可能需要知道如何应用这些分析,比如在系统设计中选择合适的阈值,或者比较不同算法的性能。因此,我应该提供具体的步骤,比如收集数据、计算指标、绘制图表等,并给出示例图表,比如使用Python的Matplotlib库绘制ROC曲线。 同时,我需要检查是否有相关的引用或标准,比如ISO/IEC 19795,这可能涉及生物识别性能测试的国际标准,确保回答的准确性。此外,可能需要提到实际应用中的挑战,比如数据集的多样性、环境因素对性能的影响等。 最后,生成相关问题,帮助用户进一步探索,比如如何选择最佳阈值,FARFRR的权衡策略,或者与其他指标TAR的关系。确保这些问题能引导用户深入理解主题,并找到所需的资源或方法。 总结一下,回答的结构应该包括:FARFRR的定义,图表分析方法(ROC、DET、EER),分析步骤,示例代码(如果有的话),实际应用中的考虑因素,以及相关问题。需要确保使用正确的中文术语,并正确应用LaTeX格式,比如数学公式用$...$包裹,独立公式用$$...$$,同时引用相关标准时添加引用标识。</think>### FARFRR图表分析方法 在生物识别系统评估中,**错误接受率(FAR)**和**错误拒绝率(FRR)**是关键性能指标,其分析通常通过以下方法实现: --- #### 1. **核心指标定义** - **FAR**: 非授权用户被错误接受的概率,计算公式为: $$FAR = \frac{\text{错误接受次数}}{\text{非授权用户尝试总次数}} \times 100\%$$ - **FRR**: 授权用户被错误拒绝的概率,计算公式为: $$FRR = \frac{\text{错误拒绝次数}}{\text{授权用户尝试总次数}} \times 100\%$$ 两者通过调整**判别阈值**动态变化[^1]。 --- #### 2. **主要图表分析方法** **(1) ROC曲线(受试者工作特征曲线)** - 横轴为FAR,纵轴为**真正率(TAR = 1 - FRR)**,反映不同阈值下的性能平衡(见图1)。 - **曲线下面积(AUC)**越大,系统整体性能越好[^2]。 **(2) DET曲线(检测错误权衡曲线)** - 使用对数坐标绘制FARFRR,更直观展示低错误率区域的差异(见图2)。 - **交叉点(EER, 等错误率)**表示FAR=FRR时的阈值,常用于系统对比[^3]。 **(3) 阈值-FAR/FRR关系图** - 直接展示阈值变化对FARFRR的影响,帮助选择最佳阈值(见图3)。 --- #### 3. **分析步骤** 1. **数据收集**:记录系统匹配分数(如相似度得分)及对应的真实身份标签。 2. **排序与计算**:按得分排序,遍历所有阈值分别计算FARFRR。 3. **绘图分析**:生成ROC/DET曲线,确定EER或目标场景下的最优阈值(如高安全场景要求FAR趋近0)。 --- #### 4. **示例图表(Python实现)** ```python import matplotlib.pyplot as plt from sklearn.metrics import roc_curve, det_curve # 假设scores为匹配分数,y_true为真实标签(0=非授权,1=授权) fpr, tpr, _ = roc_curve(y_true, scores) plt.plot(fpr, tpr) # ROC曲线 plt.xlabel('FAR') plt.ylabel('TAR') # DET曲线(需安装det_curve库) fpr_det, fnr_det, _ = det_curve(y_true, scores) plt.plot(fpr_det, fnr_det) # 使用对数坐标 ``` --- #### 5. **实际应用中的权衡** - **安全优先系统**(如核电站访问控制):需最小化FAR,容忍较高FRR。 - **用户体验优先系统**(如手机解锁):需降低FRR,适当放宽FAR[^4]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值