就Re-ID的任务来说:
已知:一个在训练集上训练好的模型,一个query( 用于查询的集 ),一个gallery( 在其中搜索结果,或test )
求:mAP, CMC
mAP:mean Average Precision
- 针对:检索问题。是就query和gallery来讨论
- 直述:每一张查询图片在查找集(query和gallery特征的相似度排序)里的匹配程度。由匹配正确的图片和它们的排序位置决定。主要是特征信息提取准确性和分类结果准确性两方面。
- (看这张图不懂的是傻瓜)
- 一句话:在前面的正确的越多,分就越高
- mAP:对多次查询结果AP取平均值
CMC:Cumulative Matching Characteristic
-
针对:分类问题。是就test来讨论。
-
直述:用测试集检测trained模型,评估分类结果的准确性。
-
例子:
已知:类别A,B,C。 测试样例1,2,3,4,5。每个样例预测为某一类的结果如下:
A | B | C | |
1(A:正确的预测排第一) | 0.8 | 0.1 | 0.1 |
2(B:正确的预测排第二) | 0.6 | 0.3 | 0.1 |
3(C:正确的预测派第三) | 0.2 | 0.7 | 0.1 |
4(A:正确的预测排第一) | 0.6 | 0.2 | 0.2 |
5(B:正确的预测排第二) | 0.2 | 0.3 | 0.5 |
求:rank1,rank2,rank3
得:rank1=40%,rank2=80%,rank3=100%(第一个正确有2/5, 前两个正确有4/5,前三个正确有5/5)
就检索和推荐系统:
第一个角度,例: 某池塘:
- 已知:1400鲤鱼, 300虾, 300鳌。
- 目的:捕鲤鱼
- 结果:700鲤鱼,200虾,100鳌。
第二个角度,表格:
召回率(Recall):
- 正确率 = 提取出的正确信息条数 / 提取出的信息条数
- 正样本有多少被找出来了(召回了多少)
- recall:700/ 1400
- (即,真的样本中对了多少)
精确率(Precision):
- 召回率 = 提取出的正确信息条数 / 样本中的信息条数
- 你认为的正样本,有多少猜对了(猜的精确性如何)
- precision: 700/ 700+200+100
- (即,猜是真的样本中对了多少)
第三,推荐系统中的:
- R(u):根据用户在训练集上的行为,做出的Top-n推荐列表
- T(u):系统向用户推荐物品后,用户实际选择的物品集
ROC 是曲线:
- 分子:都是预测为“真”
- 分母:
- TPR:本来是真的(最终对了多少)
- FPR:本来是假的(最终将多少结果预测成了对的)
- (右图):
- 大括号:两个分母
- 小括号:两个分子
AUC是数值:ROC和坐标轴的积分
- 取不同阈值就能得到 一个分类器的ROC曲线
- 不同的分类器会有不同的ROC曲线。 AUC越大分类器的效果越好。
NDCG:归一化折损累计增益
-
推荐系统任务背景:
- 推荐系统模型输出每个输入样例的score(即, 推荐系统返回一些item,并形成一个列表)
- 将所有样例的输出按由大到小排序(即,将列表排序)
- 目的:和用户匹配的应该被排序到更前面(即,设计评价标准使得“排到前面这种情况” 评价更高)
-
NDCG的逐步形成:
-
评价列表的好坏:一个非负数,增益gain。(对于没有用户反馈的项,通常设置增益为0)
-
CG累计增益:将每个推荐结果相关性的分数累加后作为整个推荐列表的得分
- DCG:
- CG的缺点:没有考虑每个推荐结果处于不同位置对整个推荐效果的影响
- (如:总是希望相关性高的结果排在前面, 相关性低的结果排在前面会影响用户体验)
- 所以,在CG的基础上引入位置影响因素----对排名靠后的结果进行“打折处理” (分母: i代表位置, 如果i==1,即代表第一个位置,则不打折。 而位置越靠后,i越大,分母越大,整体越小)
- NDCG:
- DCG在不同的推荐列表之间很难进行横向评估。所以,需要对不同用户的推荐列表的评估进行归一化。
- IDCG:为某用户返回的最好推荐结果列表
- DCG的值域:(0, IDCG]
- NDCG的值域: (0, 1]
- NDCG的定义:
- 平均NDCG:
Hit ratio:
- 公式:
- 分母:加和:每个用户测试集商品个数
- 分子:加和:每个用户 通过模型得到的 topN推荐列表中,在测试集中的数量
- 例:
- 三个用户在测试集中的商品个数分别是10,12,8
- 模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中
- HR的值是(6+5+4)/(10+12+8) = 0.5