机器学习 推荐系统常见指标计算

机器学习常见指标计算

Precision 、Recall 和F1 Score

精确率(Precision)和召回率(Recall)是机器学习中最常见的评估两个分类模型性能的指标。

预测为正预测为负
实际为正TP(真正例)FN(假反例)
实际为负FP(假正例)TN(真反例)

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
R e c a l l = T P T P + F N Recall= \frac{TP}{TP+FN} Recall=TP+FNTP
然而两个这指标是一对矛盾的指标,一般在不同的应用场景会关系不同的指标。F1 Score是基于Precision和Recall的调和平均:
1 F 1 = 1 2 ( 1 P r e c i s i o n + 1 R e c a l l ) \frac{1}{F1} = \frac{1}{2}(\frac{1}{Precision}+\frac{1}{Recall}) F11=21(Precision1+Recall1)

AUC 和 ROC

ROC曲线的横轴为假正例率FPR,表示的含义是:所有真实类别为0的样本中,预测类别为1的比例
纵轴为真正例率TPR,表示的含义是:所有真实类别为1的样本中,预测类别为1的比例
两者计算方式如下:
F P R = F P T N + F P FPR = \frac{FP}{TN+FP} FPR=TN+FPFP
T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP
可以看到TPR=Recall,ROC曲线图绘制如下:
在这里插入图片描述
首先两个端点的含义:
AUC是ROC曲线下部分的面积。具体含义是任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。或者,任意给定一个负样本,所有正样本的score中有多大比例是大于该负类样本的score。
AUC<0.5则意味着该模型总是将正例分类成负例,负例分类成正例。
AUC=0.5意味着该模型随机猜测样本的类别。
AUC>0.5意味着真实类别为1的样本中,预测类别为1的比例总是大于真实类别为0的样本中,预测类别为1的比例。
理想情况下,AUC=1,也就是说每个正类都被正确分类。
AUC的优点在于:AUC的计算方法同时考虑了分类器对于正例和负例的分类能力在样本不平衡的情况下,依然能够对分类器作出合理的评价。

假设正样本1个,负样本99个,如果使用Precision作为评测指标,那么即使全部预测为负样本的情况下,Precision=0.99;如果选择F1 score 作为评测指标那么,F1 score=0;

推荐系统常见指标计算

HR 和 NDCG

这两个指标常见于Top-n推荐。一般都是计算在前n个推荐物品中的指标值,比如HR@n表示推荐的n个物品中命中的物品除以测试集中对应user的物品数量。
Hit Ratio和Recall是一样计算的,对推荐物品的位置不敏感
归一化折损累积增益(Normalized Discounted Cumulative Gain)对推荐物品位置敏感,计算方式如下:
N D C G @ n = D C G @ n I D C G NDCG@n = \frac{DCG@n}{IDCG} NDCG@n=IDCGDCG@n
D C G @ n = ∑ i = 1 n 2 r e l i − 1 l o g 2 ( i + 1 ) DCG@n = \sum_{i=1}^{n}\frac{2^{rel_{i}}-1}{log_{2}(i+1)} DCG@n=i=1nlog2(i+1)2reli1
其中 r e l i rel_{i} reli表示是第i个物品的相关性,一般相关的记为1,不相关的记为0。IDCG是所有推荐物品和测试集中物品都相关的条件下的DCG的值,显然是用来做归一化处理的。下面举个例子计算:
假设推荐物品top-5为[3,46,9,1],而测试集中的物品为[8,64],那么:
DCG@5 = 2 0 − 1 l o g 2 ( 1 + 1 ) + 2 1 − 1 l o g 2 ( 2 + 1 ) + 2 1 − 1 l o g 2 ( 3 + 1 ) + 2 0 − 1 l o g 2 ( 4 + 1 ) + 2 0 − 1 l o g 2 ( 5 + 1 ) = 1.13 \frac{2^0-1}{log_{2}(1+1)}+\frac{2^1-1}{log_{2}(2+1)}+\frac{2^1-1}{log_{2}(3+1)}+\frac{2^0-1}{log_{2}(4+1)}+\frac{2^0-1}{log_{2}(5+1)}=1.13 log2(1+1)201+log2(2+1)211+log2(3+1)211+log2(4+1)201+log2(5+1)201=1.13
IDCG= 2 1 − 1 l o g 2 ( 1 + 1 ) + 2 1 − 1 l o g 2 ( 2 + 1 ) + 2 1 − 1 l o g 2 ( 3 + 1 ) + 2 1 − 1 l o g 2 ( 4 + 1 ) + 2 1 − 1 l o g 2 ( 5 + 1 ) = 2.948 \frac{2^1-1}{log_{2}(1+1)}+\frac{2^1-1}{log_{2}(2+1)}+\frac{2^1-1}{log_{2}(3+1)}+\frac{2^1-1}{log_{2}(4+1)}+\frac{2^1-1}{log_{2}(5+1)}=2.948 log2(1+1)211+log2(2+1)211+log2(3+1)211+log2(4+1)211+log2(5+1)211=2.948
因此NDCG@5=0.383。
可以看出排序位置越靠前NDCG值越大。

MRR

平均倒数排序(Mean Reciprocal Rank)计算的是对用用户i,推荐列表中第一个用户感兴趣的物品的位置的倒数:
M R R = 1 N ∑ 1 N 1 r a n k i MRR = \frac{1}{N}\sum_{1}^{N}\frac{1}{rank_{i}} MRR=N11Nranki1
其中N代表用户的个数。比如系统只有一个用户,现在给用户推荐了3个物品[movie1,movie2,movie3],用户感兴趣的是movie3,那么 M R R = 1 3 MRR = \frac{1}{3} MRR=31

MSE、 RMSE和MAE

这些指标常见于回归预测模型,同时也是推荐系统中评分预测的指标。均方误差(Mean Square Error)是预测值和真实值之差的平方的期望值:
M S E = 1 N ∑ i = 1 N ( y − y ^ ) 2 MSE = \frac{1}{N}\sum_{i=1}^{N}(y-\hat y)^{2} MSE=N1i=1N(yy^)2
均方根误差(Root Mean Square Error)其实就是MSE的平方根:
R M S E = 1 N ∑ i = 1 N ( y − y ^ ) 2 RMSE = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(y-\hat y)^{2}} RMSE=N1i=1N(yy^)2
平均绝对误差(Mean Absolute Error )是预测值和真实值之差的绝对值的期望值:
M A E = 1 N ∑ i = 1 N ∣ y − y ^ ∣ MAE = \frac{1}{N}\sum_{i=1}^{N}|y-\hat y| MAE=N1i=1Nyy^

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值