Recall(召回率) 大小反应了用户感兴趣的信息有多少被我们感知到了;
R
e
c
a
l
l
=
∑
u
∈
U
R
(
u
)
∩
T
(
U
)
∑
u
∈
U
T
(
u
)
Recall = \frac{\sum_{u\in U}{R(u) \cap T(U)}}{\sum_{u\in U}{T(u)}}
Recall=∑u∈UT(u)∑u∈UR(u)∩T(U) 精确率precision:
p
r
e
c
i
s
i
o
n
=
∑
u
∈
U
R
(
u
)
∩
T
(
U
)
∑
u
∈
U
R
(
u
)
precision = \frac{\sum_{u\in U}{R(u) \cap T(U)}}{\sum_{u\in U}{R(u)}}
precision=∑u∈UR(u)∑u∈UR(u)∩T(U)
R
(
u
)
R(u)
R(u)表示根据用户在训练集上的行为给用户做出的Top-n推荐列表;
T
(
u
)
T(u)
T(u)表示系统向用户推荐物品后,用户实际选择的物品集;
2.NDCG
CG(Cumulative Gain,累计增益):
C
G
K
=
∑
i
=
1
K
r
e
l
i
CG_K = \sum_{i=1}^{K}rel_i
CGK=i=1∑Kreli CG就是将推荐列表中的每个推荐结果(相关性分数)累加;但有可能出现一个列表中,高分的排到低位,低分的排到高位;
DCG(Discounted Cumulative Gain,折损累计增益):
D
C
G
K
=
∑
i
=
1
K
r
e
l
i
−
1
l
o
g
2
(
i
+
1
)
DCG_K = \sum_{i=1}^{K} \frac{rel_i-1}{log_2(i+1)}
DCGK=i=1∑Klog2(i+1)reli−1 由于CG没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,DCG引入位置影响因素,对于排名靠后推荐结果的推荐效果进行“打折处理”;
我们在评估一个推荐系统的时候,不单单只对一个用户的推荐列表进行评估,而是对整个测试集的用户的推荐列表进行整体的一个评估,所以不同的用户的推荐列表的评估分数就需要进行归一化
N
D
C
G
u
@
K
=
D
C
G
u
@
K
I
D
C
G
u
NDCG_u@K = \frac{DCG_u@K}{IDCG_u}
NDCGu@K=IDCGuDCGu@K
I
D
C
G
u
IDCG_u
IDCGu指推荐系统为某一用户返回的最好推荐结果列表;
整体的平均NDCG:
N
D
C
G
@
K
=
∑
u
∈
U
N
D
C
G
@
K
U
NDCG@K = \frac{\sum_{{u\in U}}NDCG@K}{U}
NDCG@K=U∑u∈UNDCG@K
3.RMSE
RMSE(Root Mean Square Error,均方根误差)
R
M
S
E
(
X
,
h
)
=
1
m
∑
i
=
1
m
(
h
(
x
i
)
−
y
i
)
2
RMSE(X,h) = \sqrt{ \frac{1}{m}\sum_{i=1}^{m}(h(x_i)-y_i)^2}
RMSE(X,h)=m1i=1∑m(h(xi)−yi)2 均方根误差是用来衡量观测值同真实值之间的偏差,RMSE越小越好