1、DCG
例子: 文章库内有4个文章
d
1
d_1
d1、
d
2
d_2
d2、
d
3
d_3
d3、
d
4
d_4
d4。针对查询Q,每个文档的打分分别为:
d
1
=
0
分
d_1=0分
d1=0分、
d
2
=
1
分
d_2=1分
d2=1分、
d
3
=
2
分
d_3=2分
d3=2分、
d
4
=
2
分
d_4=2分
d4=2分。
查询Q在系统S中返回的结果顺序为:
d
3
d_3
d3、
d
2
d_2
d2、
d
4
d_4
d4、
d
1
d_1
d1。
解:DCG公式为:
D
C
G
R
F
=
∑
s
c
o
r
e
i
l
o
g
2
(
1
+
r
a
n
k
i
)
DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}
DCGRF=∑log2(1+ranki)scorei
查询的顺序与分数为:
d
3
(
2
分
)
d_3(2分)
d3(2分)、
d
2
(
1
分
)
d_2(1分)
d2(1分)、
d
4
(
2
分
)
d_4(2分)
d4(2分)、
d
1
(
0
分
)
d_1(0分)
d1(0分)
所以
D
C
G
R
F
=
2
l
o
g
2
2
+
1
l
o
g
2
3
+
2
l
o
g
2
4
+
0
l
o
g
2
5
=
4.584
DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584
DCGRF=log222+log231+log242+log250=4.584
2、NDCG
例子(同上): 文章库内有4个文章
d
1
d_1
d1、
d
2
d_2
d2、
d
3
d_3
d3、
d
4
d_4
d4。针对查询Q,每个文档的打分分别为:
d
1
=
0
分
d_1=0分
d1=0分、
d
2
=
1
分
d_2=1分
d2=1分、
d
3
=
2
分
d_3=2分
d3=2分、
d
4
=
2
分
d_4=2分
d4=2分。
查询Q在系统S中返回的结果顺序为:
d
3
d_3
d3、
d
2
d_2
d2、
d
4
d_4
d4、
d
1
d_1
d1。
解:NDCG公式为:
N
D
C
G
=
D
C
G
R
F
I
D
C
G
NDCG=\frac{DCG_{RF}}{IDCG}
NDCG=IDCGDCGRF
DCG公式为
D
C
G
R
F
=
∑
s
c
o
r
e
i
l
o
g
2
(
1
+
r
a
n
k
i
)
DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}
DCGRF=∑log2(1+ranki)scorei
IDCG为Grund Truth即最理想的查询结果:
I
D
C
G
=
∑
G
T
i
l
o
g
2
(
1
+
r
a
n
k
i
)
IDCG=\sum \frac{GT_i}{log_2{(1+rank_i)}}
IDCG=∑log2(1+ranki)GTi
查询的顺序与分数为:
d
3
(
2
分
)
d_3(2分)
d3(2分)、
d
2
(
1
分
)
d_2(1分)
d2(1分)、
d
4
(
2
分
)
d_4(2分)
d4(2分)、
d
1
(
0
分
)
d_1(0分)
d1(0分)
所以
D
C
G
R
F
=
2
l
o
g
2
2
+
1
l
o
g
2
3
+
2
l
o
g
2
4
+
0
l
o
g
2
5
=
4.584
DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584
DCGRF=log222+log231+log242+log250=4.584
I
D
C
G
=
2
l
o
g
2
2
+
2
l
o
g
2
3
+
1
l
o
g
2
4
+
0
l
o
g
2
5
=
7.170
IDCG=\frac{2}{log_2{2}} + \frac{2}{log_2{3}} + \frac{1}{log_2{4}} + \frac{0}{log_2{5}} = 7.170
IDCG=log222+log232+log241+log250=7.170
综上:
N
D
C
G
=
D
C
G
R
F
I
D
C
G
=
4.584
7.170
=
0.639
NDCG=\frac{DCG_{RF}}{IDCG}=\frac{4.584}{7.170}=0.639
NDCG=IDCGDCGRF=7.1704.584=0.639
3、ROC与AUC
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3f55424b9c2f2bcf85e4fcd704a9d9e5.png)
TP: 模型预测的正类是对的
FN: 模型预测的负类是错的
FP: 模型预测的正类是错的
TN: 模型预测的负类是对的
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/53ee4a90f1b806b4f7d74dafc6b23c45.png)
A为Ground-Truth B为predict
正确率
A
c
c
u
r
a
c
y
=
T
P
+
F
N
T
P
+
T
N
+
F
P
+
F
N
=
U
−
A
∩
B
+
A
∩
B
U
Accuracy=\frac{TP+FN}{TP+TN+FP+FN}=\frac{U-A\cap{B}+A\cap{B}}{U}
Accuracy=TP+TN+FP+FNTP+FN=UU−A∩B+A∩B
召回率 R e c a l l = T P T P + F N = A ∩ B A Recall=\frac{TP}{TP+FN}=\frac{A\cap{B}}{A} Recall=TP+FNTP=AA∩B
精准度 P r e c i s i o n = T P T P + F P = A ∩ B B Precision=\frac{TP}{TP+FP}=\frac{A\cap{B}}{B} Precision=TP+FPTP=BA∩B
F 1 = 2 1 P r e c i s i o n + 1 R e c a l l = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F1=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} = \frac{2*Precision*Recall}{Precision+Recall} F1=Precision1+Recall12=Precision+Recall2∗Precision∗Recall
(F1为 Recall和Precision的调和平均数)
假阳率(ROC曲线X轴) F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP
真阳率(ROC曲线Y轴 ==召回率) T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
AUC就是曲线右下部分面积。
4、BM25
BM25公式 S c o r e ( Q , d ) = ∑ i n W i ∗ R ( Q i , d ) Score(Q, d)=\sum_{i}^{n} W_i * R(Q_i,d) Score(Q,d)=∑inWi∗R(Qi,d)
其中: Q是Query。 Q i Q_i Qi 表示语素(切词后的语素,与词典库对应。如Q=保定驴肉火烧哪家强? Q 0 Q_0 Q0=保定, Q 1 Q_1 Q1=驴肉)。 W i W_i Wi表示: 语素 Q i Q_i Qi的权重,通常与TF-IDF排序成正相关。
5、AP
平均正确率(Average Precision, AP):对不同召回率点上的正确率进行平均。
1) 未插值的AP:
某个查询Q共有6个相关结果,某系统排序返回了5篇相关文档,其位置分别是第1,第2,第5,第10,第20位,则AP=(1/1+2/2+3/5+4/10+5/20+0)/6。
2) 插值的AP:
只对返回的相关文档进行计算的AP, AP=(1/1+2/2+3/5+4/10+5/20)/5,倾向那些快速返回结果的系统,没有考虑召回率。
不考虑召回率情况下,单个查询评价指标还有:
(1)Precision@N:在第N个位置上的正确率,对于搜索引擎,考虑到大部分作者只关注前一、两页的结果,P@10,P@20对大规模搜索引擎非常有效
(2)NDCG
(3)Bpref:Binary preference,2005年首次引入到TREC的Terabyte任务中。