1. 程式人生 > >資訊檢索 DCG、NDCG、AUC、BM25、F1-Score、AP

資訊檢索 DCG、NDCG、AUC、BM25、F1-Score、AP

1、DCG

例子: 文章庫內有4個文章 d1d_1d2d_2d3d_3d4d_4。針對查詢Q,每個文件的打分分別為:d1=0d_1=0分d2=1d_2=1分d3=2d_3=2分d4=2d_4=2分
查詢Q在系統S中返回的結果順序為: d3d_3d2d_2d4d_4d1d_1

:DCG公式為:DCGRF=scoreilog2(1+ranki)DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}

i)scorei
查詢的順序與分數為:d3(2)d_3(2分)d2(1)d_2(1分)d4(2)d_4(2分)d1(0)d_1(0分)
所以 DCGRF=2log22+1log23+2log24+0log25=4.584DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584

2、NDCG

例子(同上)

: 文章庫內有4個文章 d1d_1d2d_2d3d_3d4d_4。針對查詢Q,每個文件的打分分別為:d1=0d_1=0分d2=1d_2=1分d3=2d_3=2分d4=2d_4=2分
查詢Q在系統S中返回的結果順序為: d3d_3d2d_2d4d_4d1d_1

:NDCG公式為:NDCG=DCGRFIDCGNDCG=\frac{DCG_{RF}}{IDCG}
DCG公式為 DCGRF=scoreilog2(1+ranki)DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}


IDCG為Grund Truth即最理想的查詢結果: IDCG=GTilog2(1+ranki)IDCG=\sum \frac{GT_i}{log_2{(1+rank_i)}}
查詢的順序與分數為:d3(2)d_3(2分)d2(1)d_2(1分)d4(2)d_4(2分)d1(0)d_1(0分)
所以 DCGRF=2log22+1log23+2log24+0log25=4.584DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584
IDCG=2log22+2log23+1log24+0log25=7.170IDCG=\frac{2}{log_2{2}} + \frac{2}{log_2{3}} + \frac{1}{log_2{4}} + \frac{0}{log_2{5}} = 7.170
綜上: NDCG=DCGRFIDCG=4.5847.170=0.639NDCG=\frac{DCG_{RF}}{IDCG}=\frac{4.584}{7.170}=0.639

3、ROC與AUC

在這裡插入圖片描述
TP: 模型預測的正類是對的
FN: 模型預測的負類是錯的
FP: 模型預測的正類是錯的
TN: 模型預測的負類是對的
在這裡插入圖片描述
A為Ground-Truth B為predict
正確率 Accuracy=TP+FNTP+TN+FP+FN=UAB+ABUAccuracy=\frac{TP+FN}{TP+TN+FP+FN}=\frac{U-A\cap{B}+A\cap{B}}{U}