深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG

就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鳌。

第二个角度,表格:

深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG_第1张图片

 

召回率(Recall):

  • 正确率 = 提取出的正确信息条数 /  提取出的信息条数
  • 正样本有多少被找出来了(召回了多少)
  • recall:700/ 1400
  • (即,真的样本中对了多少)

精确率(Precision):

  • 召回率 = 提取出的正确信息条数 /  样本中的信息条数
  • 你认为的正样本,有多少猜对了(猜的精确性如何)
  • precision: 700/ 700+200+100
  • (即,猜是真的样本中对了多少)

第三,推荐系统中的:

  • R(u):根据用户在训练集上的行为,做出的Top-n推荐列表
  • T(u):系统向用户推荐物品后,用户实际选择的物品集

ROC 是曲线:

深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG_第2张图片深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG_第3张图片

  • 分子:都是预测为“真”
  • 分母:
    • TPR:本来是真的(最终对了多少)
    • FPR:本来是假的(最终将多少结果预测成了对的)
  • (右图):
    • 大括号:两个分母
    • 小括号:两个分子

AUC是数值:ROC和坐标轴的积分

  • 取不同阈值就能得到 一个分类器的ROC曲线

深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG_第4张图片

  • 不同的分类器会有不同的ROC曲线。  AUC越大分类器的效果越好。

深度学习基础----mAP和CMC,Recall和Precision,ROC和AUC,NDCG_第5张图片


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

 

 

你可能感兴趣的:(Re_ID,推荐系统,深度学习基础)