AP、mAP、F1 Score、PR曲线、ROC曲线

本文介绍了几种常用的机器学习模型性能评估指标,包括准确度、精确度、召回率、F1分数、平均精度(AP)、平均平均精度(mAP)及接收者操作特性曲线(ROC)。并详细解释了这些指标的意义、计算公式及其应用场景。

1. 基础概念

混淆矩阵:
在这里插入图片描述
通过研究该混淆矩阵,可以构造如下几个指标:
(1) Accuracy(准确度):

  • 意义:用于同时衡量分类器对于正负样本的分类正确性。
  • 不足:当测试样本不平衡时,该指标会失去意义。例如:100个样本中负样本占有98个,那么分类器只需将所有样本分为负类即可达到98%的准确度。
  • 公式:accuracy=TP+FNTP+FN+FP+TNaccuracy = \frac{TP + FN}{TP+FN+FP+TN}accuracy=TP+FN+FP+TNTP+FN

(2) Precesion(精确度):

  • 意义:衡量分类器对于正样本的查准率,表示分类器对于正负样本的区分能力。当区分能力强时,容易将部分(与负样本相似度高)正样本排除。
  • 公式:precesion=TPTP+FPprecesion = \frac{TP}{TP+FP}precesion=TP+FPTP

(3) Recall(召回率)、敏感性:

  • 意义:衡量分类器对于正样本的查全率,表示分类器对于正样本的敏感度或覆盖度。当敏感度高时,容易将部分(与正样本相似度高)负样本也判断为正样本。
  • 公式:recall=TPTP+FNrecall = \frac{TP}{TP+FN}recall=
### MAP曲线图的横纵坐标含义 在机器学习领域,特别是涉及目标检测或多类别的分类任务时,平均精度均值(Mean Average Precision, mAP)是一个常用的性能度量标准。mAP 的可视化通常通过绘制 AP 曲线ROC/AUC 图形实现。 #### 横坐标的含义 在大多数情况下,MAP 曲线图中的 **横坐标表示召回率(Recall)**。 召回率定义为实际正样本被正确识别的比例,其公式如下: \[ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} \][^1] - True Positives (TP): 正确预测为正类的数量。 - False Negatives (FN): 实际为正类却被错误预测为负类的数量。 因此,横坐标展示了随着阈值变化,模型能够捕获多少比例的真实正样本。 --- #### 纵坐标的含义 对于 MAP 曲线图而言,**纵坐标一般代表精确率(Precision)** 或者其他特定指标(如 F1-Score)。 精确率是指预测为正类的结果中有多少确实是正类,其公式为: \[ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} \][^2] - False Positives (FP): 错误地预测为正类但实际上为负类的数量。 精确率反映了模型对正类预测的信心程度以及减少假阳性的能力。 --- #### 特殊情况下的扩展理解 有时,在更复杂的场景下,例如多类别目标检测任务中,可能会引入 IoU(Intersection over Union)作为额外维度参与绘图。此时: - 如果是 PR 曲线形式,则横轴仍为 Recall,而纵轴可能变为不同 IoU 阈值条件下的 Precision 平均线。 - 若采用 AUC 表达方式,则横轴可能是不同的决策阈值范围 \( [0, 1] \),纵轴则对应累积计算得出的 AP 值[^3]。 以下是 Python 中绘制简单 PR 曲线的一个例子: ```python import matplotlib.pyplot as plt from sklearn.metrics import precision_recall_curve # 示例数据 y_true = [0, 1, 1, 0, 1] y_scores = [0.1, 0.4, 0.35, 0.8, 0.7] precision, recall, thresholds = precision_recall_curve(y_true, y_scores) plt.figure() plt.plot(recall, precision, marker='.') plt.xlabel('Recall') plt.ylabel('Precision') plt.title('PR Curve Example') plt.grid(True) plt.show() ``` 此代码片段生成了一条典型的 PR 曲线,其中 `recall` 和 `precision` 数组分别构成了横纵坐标的数据点集合。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值