详细解释mAP@10,mAR@10,Prec@10

信息检索常用评价指标解析

系列文章目录



在信息检索和推荐系统中,mAP@10、mAR@10和Prec@10是常用的评价指标,它们用于衡量检索结果的质量。以下是对这三个指标的详细解释:

1. 精确度(Precision, Prec@N)

精确度是指在检索结果中,相关文档占总检索结果的比例。具体来说,Prec@10表示在前10个检索结果中,有多少个是相关的。计算公式为:

Prec@10 = Relevant Documents in Top 10 Total Documents in Top 10 = T P T P + F P \text{Prec@10} = \frac{\text{Relevant Documents in Top 10}}{\text{Total Documents in Top 10}} = \frac{TP}{TP + FP} Prec@10=Total Documents in Top 10Relevant Documents in Top 10=TP+FP

Epoch 1 [38.4 s] loss=1.1197 [0.0 s] Epoch 2 [19.6 s] loss=0.7469, map=0.0661, prec@1=0.1755, prec@5=0.0869, prec@10=0.0630, recall@1=0.0252, recall@5=0.0613, recall@10=0.0885, [626.0 s] Epoch 3 [19.7 s] loss=0.5829 [0.0 s] Epoch 4 [19.5 s] loss=0.4982, map=0.0783, prec@1=0.1951, prec@5=0.0974, prec@10=0.0716, recall@1=0.0295, recall@5=0.0714, recall@10=0.1039, [628.0 s] Epoch 5 [23.9 s] loss=0.4435 [0.0 s] Epoch 6 [20.7 s] loss=0.4032, map=0.0830, prec@1=0.1894, prec@5=0.1039, prec@10=0.0767, recall@1=0.0295, recall@5=0.0772, recall@10=0.1125, [599.4 s] Epoch 7 [60.0 s] loss=0.3728 [0.0 s] Epoch 8 [29.7 s] loss=0.3487, map=0.0854, prec@1=0.1919, prec@5=0.1065, prec@10=0.0782, recall@1=0.0295, recall@5=0.0790, recall@10=0.1147, [588.8 s] Epoch 9 [27.3 s] loss=0.3271 [0.0 s] Epoch 10 [23.7 s] loss=0.3083, map=0.0888, prec@1=0.2027, prec@5=0.1109, prec@10=0.0806, recall@1=0.0316, recall@5=0.0831, recall@10=0.1180, [570.3 s] Epoch 11 [30.1 s] loss=0.2936 [0.0 s] Epoch 12 [25.7 s] loss=0.2786, map=0.0883, prec@1=0.1951, prec@5=0.1079, prec@10=0.0796, recall@1=0.0306, recall@5=0.0807, recall@10=0.1172, [576.2 s] Epoch 13 [50.6 s] loss=0.2659 [0.0 s] Epoch 14 [35.1 s] loss=0.2540, map=0.0918, prec@1=0.2033, prec@5=0.1119, prec@10=0.0825, recall@1=0.0321, recall@5=0.0841, recall@10=0.1213, [574.4 s] Epoch 15 [25.8 s] loss=0.2427 [0.0 s] Epoch 16 [22.4 s] loss=0.2342, map=0.0924, prec@1=0.2014, prec@5=0.1145, prec@10=0.0841, recall@1=0.0317, recall@5=0.0862, recall@10=0.1231, [575.3 s] Epoch 17 [27.1 s] loss=0.2246 [0.0 s] Epoch 18 [23.5 s] loss=0.2171, map=0.0914, prec@1=0.1972, prec@5=0.1119, prec@10=0.0827, recall@1=0.0314, recall@5=0.0847, recall@10=0.1222, [572.8 s] Epoch 19 [22.5 s] loss=0.2087 [0.0 s] Epoch 20 [21.7 s] loss=0.2027, map=0.0939, prec@1=0.2068, prec@5=0.1137, prec@10=0.0837, recall@1=0.0328, recall@5=0.0859, recall@10=0.1237, [575.0 s] Epoch 21 [23.8 s] loss=0.1962 [0.0 s] Epoch 22 [20.7 s] loss=0.1912, map=0.0949, prec@1=0.2043, prec@5=0.1154, prec@10=0.0856, recall@1=0.0327, recall@5=0.0876, recall@10=0.1269, [563.9 s] 400字结果分析
05-19
在信息检索或机器学习模型中,评估召回率为60%时的精确率性能(Precision at 60% Recall)是一种衡量模型在特定召回水平下准确性的方法。这种指标通常用于比较不同模型在相同数据集上的表现,尤其是在需要权衡精确率和召回率的应用场景中。 ### 精确率与召回率的关系 精确率(Precision)是指被模型预测为正类的样本中,实际确实是正类的比例。而召回率(Recall),也称为查全率,是指所有真实正类样本中,被正确识别出来的比例。两者共同构成了评估分类器性能的基础[^1]。 当设定召回率为60%,即要求模型能够找出所有真实正类样本中的60%,此时计算对应的精确率可以揭示模型在这个特定召回水平下的准确性。这一数值越高,说明模型在保证一定召回能力的同时,也能较好地控制误报的数量。 ### 如何计算Precision at 60% Recall 要计算Precision at 60% Recall,首先需要通过调整模型的决策阈值来达到大约60%的召回率。一旦确定了这个阈值,就可以计算此时的精确率: $$ Precision = \frac{TP}{TP + FP} $$ 其中: - $ TP $ 是真正例数,即被模型正确预测为正类的真实正类样本数量。 - $ FP $ 是假正例数,即被模型错误预测为正类的真实负类样本数量。 ### 实现步骤 1. **收集预测结果**:运行模型以获取每个测试样本属于正类的概率或得分。 2. **排序与选择**:根据这些概率或得分对样本进行降序排列,并依次选取直到满足60%的召回率条件。 3. **计算精确率**:统计在这部分选中的样本中,有多少是真正的正类样本,以此来计算精确率。 ### 注意事项 - 在实践中,可能需要多次调整阈值才能精确达到所需的召回率。 - 不同的数据集可能会导致同样的模型有不同的表现,因此确保数据分布的一致性非常重要。 - 此外,由于精确率和召回率之间存在内在的权衡关系,追求高召回率往往会导致较低的精确率,反之亦然。因此,在实际应用中应当根据具体需求选择合适的平衡点。 ### 示例代码 以下是一个简单的Python示例,演示如何使用`sklearn`库中的函数来计算Precision at 60% Recall: ```python from sklearn.metrics import precision_recall_curve import numpy as np # 假设y_true是真实的标签,scores是模型输出的概率或得分 y_true = np.array([0, 0, 1, 1]) scores = np.array([0.1, 0.4, 0.35, 0.8]) precision, recall, thresholds = precision_recall_curve(y_true, scores) # 寻找最接近60% recall的索引 closest_index = np.argmin(np.abs(recall - 0.6)) precision_at_60_recall = precision[closest_index] print(f"Precision at approximately 60% recall: {precision_at_60_recall}") ``` 这段代码展示了如何利用`precision_recall_curve`函数得到不同阈值下的精确率和召回率曲线,然后找到最接近60%召回率的那个点对应的精确率值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值