准确率(Precision)和召回率(Recall)

准确率(Precision)

  • 定义:准确率是指在模型预测为正的样本中,真正为正的样本所占的比例。它关注的是模型预测的准确性。

  • 计算公式
    Precision = TP TP + FP \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} Precision=TP+FPTP
    其中:

    • TP(True Positive):真正例,模型正确预测为正的样本数。
    • FP(False Positive):假正例,模型错误预测为正的样本数。
  • 应用场景:当需要减少误报时,准确率更重要。例如,在垃圾邮件检测中,高准确率意味着减少正常邮件被误判为垃圾邮件的情况。

召回率(Recall)

  • 定义:召回率是指在所有实际为正的样本中,模型正确预测为正的样本所占的比例。它关注的是模型的覆盖能力。

  • 计算公式
    Recall = TP TP + FN \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Recall=TP+FNTP
    其中:

    • TP(True Positive):真正例,模型正确预测为正的样本数。
    • FN(False Negative):假反例,模型错误预测为负的样本数。
  • 应用场景:当需要减少漏报时,召回率更重要。例如,在疾病诊断中,高召回率意味着减少患者被漏诊的情况。

如何区分

  • 关注点不同

    • 准确率关注的是模型预测为正的样本中有多少是真正的正样本。
    • 召回率关注的是所有实际为正的样本中有多少被模型正确预测出来。
  • ⭐应用场景不同

    • 准确率适用于需要减少误报的场景。
    • 召回率适用于需要减少漏报的场景。
  • 权衡关系

    • 提高准确率可能会降低召回率,反之亦然。通常需要在两者之间找到一个平衡点。

示例

假设有一个目标检测模型在100张图片上进行检测,其中实际有30个正样本(目标存在),70个负样本(目标不存在)。模型的预测结果如下:

  • TP = 20(检测正确到的目标)

  • FP = 10(误检为目标的非目标)

  • FN = 10(漏检的目标)

  • TN = 60(正确检测为非目标的非目标)

  • 准确率
    Precision = 20 20 + 10 = 20 30 ≈ 0.6667 \text{Precision} = \frac{20}{20 + 10} = \frac{20}{30} \approx 0.6667 Precision=20+1020=30200.6667
    准确率为66.67%,表示模型预测为正的样本中有66.67%是真正的正样本。

  • 召回率
    Recall = 20 20 + 10 = 20 30 ≈ 0.6667 \text{Recall} = \frac{20}{20 + 10} = \frac{20}{30} \approx 0.6667 Recall=20+1020=30200.6667
    召回率为66.67%,表示所有实际为正的样本中有66.67%被模型正确预测出来通过。

这个示例可以看出,准确率和召回率虽然计算方式不同,但在某些情况下可能会有相似的数值。实际应用中,需要根据具体需求来权衡两者的重要性。

### 准确率召回率的定义与计算方法 #### 准确率 准确率(Accuracy)用于衡量分类模型预测正确的比例。它表示在整个数据集中,模型正确分类样本的比例。其公式如下: \[ \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \] 其中: - TP(True Positive):正类被正确预测为正类的数量; - TN(True Negative):负类被正确预测为负类的数量; - FP(False Positive):负类被错误预测为正类的数量; - FN(False Negative):正类被错误预测为负类的数量。 通过该公式可以得出整个分类系统的整体性能表现[^1]。 #### 召回率 召回率Recall),也被称为灵敏度(Sensitivity)。它是针对某一类别而言,描述的是实际属于这一类别的样本中有多少被成功检测出来。其公式如下: \[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \] 这表明,在所有真实为正类的样本中,有多少比例被模型识别并标记为了正类。高召回率意味着较少的真实正类会被漏检。 ```python def calculate_accuracy(tp, tn, fp, fn): accuracy = (tp + tn) / (tp + tn + fp + fn) return accuracy def calculate_recall(tp, fn): recall = tp / (tp + fn) return recall ``` 以上代码展示了如何基于混淆矩阵中的四个基本指标来分别计算准确率召回率。 #### F值 除了单独考虑准确率召回率外,通常还会综合两者的表现,引入F值作为评价标准之一。最常见的形式是F1分数,它的计算方式如下所示: \[ F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \] 这里 Precision 表示精确率,即预测为正类的样本中实际为正类的比例;而 Recall 则是我们之前提到过的召回率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值