深度学习分类问题中accuracy等评价指标的理解

本文通过语音唤醒的例子,深入浅出地解释了深度学习分类中的TP/FP/TN/FN概念,以及accuracy、precision、recall、FAR、FRR等评价指标。其中,accuracy表示总体准确性,precision衡量正例识别的精确性,recall关注正例识别的全面性,FAR和FRR分别反映误唤醒和不唤醒的情况。ROC曲线和EER用于评估不同阈值下的错误率平衡点,体现了算法性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在处理深度学习分类问题时,会用到一些评价指标,如accuracy(准确率)等。刚开始接触时会感觉有点多有点绕,不太好理解。本文写出我的理解,同时以语音唤醒(唤醒词识别)来举例,希望能加深理解这些指标。

1,TP / FP / TN / FN

下表表示为一个二分类的混淆矩阵(多分类同理,把不属于当前类的都认为是负例),图中的四个参数均用两个字母表示,第一个字母表示判断结果正确与否(正确用T(True),错误用F(False),第二个字母表示判定结果(正例用P(Positive),负例用N(Negative))。四个参数的具体意思如下:

TP (True Positive):表示实际为正例,判定也为正例的次数,即表示判定为正例且判定正确的次数。

FP (False Positive): 表示实际为负例,却判定为正例的次数,即表示判定为正例但判断错误的次数。

TN (True Negative):表示实际为负例,判定也为负例的次数,即表示判定为负例且判定正确的次数。

FN (False Negative): 表示实际为正例,却判定为负例的次数,即表示判定为负例但判断错误的次数。

为了帮助理解,我以智能音箱中的语音唤醒(假设唤醒词为“芝麻开门”)来举例。这里正例就是唤醒词“芝麻开门”,负例就是除了“芝麻开门”之外的其他词,即非唤醒词,如“阿里巴巴”。设定评估时说唤醒词和非唤醒词各100次,TP就表示说了“芝麻开门”且被识别的次数(假设98次),FN就表示说了“芝麻开门”却没被识别(判定成负例)的次数(假设2次),FP就表示说了非唤醒词却被识别(判定成正例)的次数(假设1次),TN就表示说了非唤醒词且没被识别的次数(假设99次)。

2,accuracy / precision / recall

accuracy是准确率,表示判定正确的次数与所有判定次数的比例。判定正确的次数是(TP+TN),所有判定的次数是(TP + TN + FP +FN),所以

                         

在语音唤醒例子中,TP = 98,TN = 99,FP = 1, FN = 2, 所以accuracy = (98 + 99) / (98 + 99 + 1 + 2) = 98.5%,即准确率为 98.5%。

precision是精确率,表示正确判定为正例的次数与所有判定为正例的次数的比例。正确判定为正例的次数是TP,所有判定为正例的次数是(TP + FP),所以

                           

在语音唤醒例子中,TP = 98, FP = 1, 所以precision = 98 / (98 + 1) = 99%,即精确率为 99%。

recall是召回率,表示正确判定为正例的次数与所有实际为正例的次数的比例。正确判定为正例的次数是TP,所有实际为正例的次数是(TP + FN),所以

                           

在语音唤醒例子中,TP = 98, FN = 2, 所以recall = 98 / (98 + 2) = 98%,即召回率为 98%。在语音唤醒场景下,召回率也叫唤醒率,表示说了多少次唤醒词被唤醒次数的比例。

3,FAR / FRR

FAR (False Acceptance Rate)是错误接受率,也叫误识率,表示错误判定为正例的次数与所有实际为负例的次数的比例。错误判定为正例的次数是FP,所有实际为负例的次数是(FP + TN),所以

                         

在语音唤醒例子中,FP = 1, TN = 99, 所以FAR = 1 / (99 + 1) = 1%,即错误接受率为 1%。在语音唤醒场景下,错误接受率也叫误唤醒率,表示说了多少次非唤醒词却被唤醒次数的比例。

FRR (False Rejection Rate)是错误拒绝率,也叫拒识率,表示错误判定为负例的次数与所有实际为正例的次数的比例。错误判定为负例的次数是FN,所有实际为正例的次数是(TP + FN),所以

                           

在语音唤醒例子中,FN = 2, TP = 98, 所以FRR = 2/ (2 + 98) = 2%,即错误拒绝率为 2%。在语音唤醒场景下,错误拒绝率也叫不唤醒率,表示说了多少次唤醒词却没被唤醒次数的比例。

4,ROC曲线 / EER

ROC(receiver operating characteristic curve)曲线是“受试者工作特征”曲线,是一种已经被广泛接受的系统评价指标,它反映了识别算法在不同阈值上,FRR(拒识率)和FAR(误识率)的平衡关系。ROC曲线中横坐标是FRR(拒识率),纵坐标是FAR(误识率),等错误率(EER Equal-Error Rate)是拒识率和误识率的一个平衡点,等错误率能够取到的值越低,表示算法的性能越好。

上图是ROC曲线的示意图,我以语音唤醒的例子来解释。从上图看出FRR低/FAR高时,即拒识率低、误识率高时,智能音箱很容易被唤醒,即很好用。FRR高/FAR低时,即拒识率高、误识率低时,智能音箱不容易被唤醒,即不太方便用,但是很难误唤醒,安全性很高。真正使用时要找到一个FAR和FRR的平衡点(EER),也就是不那么难唤醒,方便使用,同时也不会有高的误唤醒,保证安全。

为了更好的跟大家沟通,互帮互助,我建了一个讨论群。如您有兴趣,请搜薇号 david_tym  ,共同交流。谢谢!

### 深度学习图像分类常用评价指标 #### 准确率 (Accuracy) 准确率是指预测正确的样本数占总样本数的比例。对于平衡数据集来说,这是一个直观且易于理解指标。然而,在类别不平衡的情况下,准确率可能无法全面反映模型性能。 $$ \text{Accuracy} = \frac{\text{True Positives} + \text{True Negatives}}{\text{Total Samples}} $$ 尽管如此,它仍然是最常用的初步评估方法之一[^1]。 --- #### 精确率 (Precision) 精确率衡量的是在所有被预测为正类的样本中实际为正类的比例。这反映了模型对正类预测的信心程度。 $$ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} $$ 在某些场景下(如医疗诊断),减少假阳性的数量尤为重要,因此精确率是一个关键指标[^2]。 --- #### 召回率 (Recall 或 Sensitivity) 召回率表示在所有真实正类样本中,模型能够正确识别出来的比例。这是另一个重要的二元分类指标,尤其适用于希望尽可能多地检测到正类的情况。 $$ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} $$ 高召回率通常意味着较少的真实正类会被遗漏[^3]。 --- #### F1 分数 (F1-Score) F1 分数是精确率和召回率的调和平均值,综合考虑了两者之间的权衡。它是处理类别不均衡问题的有效工具。 $$ \text{F1-Score} = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} $$ 当需要在一个单一数值上比较多个模型时,F1 分数是非常有用的[^4]。 --- #### ROC 曲线与 AUC 值 ROC 曲线通过绘制假正率(FPR)作为横轴、真正率(TPR)作为纵轴来展示不同阈值下的分类器性能。理想情况下,曲线应尽可能接近左上角,这意味着较高的 TPR 和较低的 FPR。 AUC 是 ROC 曲线下面积的量化值,范围从 0 到 1。较大的 AUC 表明更好的区分能力。具体实现可以通过 `sklearn` 提供的功能完成: ```python from sklearn import metrics def calculate_auc(actual, predicted): fpr, tpr, thresholds = metrics.roc_curve(actual, predicted, pos_label=1) return metrics.auc(fpr, tpr) ``` AUC 能够提供关于整体分类效果的信息而不依赖于特定阈值的选择[^5]。 --- ### 总结 以上提到的各项指标各有侧重,选择合适的评价标准取决于具体的业务需求以及数据分布特性。例如,在医学影像分析领域,可能会更加关注召回率以确保病灶不会漏检;而在广告推荐系统中,则更倾向于优化精确率以提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值