评分预测
评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于
测试集中的一个用户u和物品i,令r ui 是用户u对物品i的实际评分,而 ˆ ui r 是推荐算法给出的预测评
分,那么 RMSE 的定义为:
MAE 采用绝对值计算预测误差,它的定义为:
假设我们用一个列表 records 存放用户评分数据,令 records[i] = [u,i,rui,pui] ,其中 rui 是用户 u 对物品 i 的实际评分, pui 是算法预测出来的用户 u 对物品 i 的评分,那么下面的代码分别实现了 RMSE 和 MAE 的计算过程。
def RMSE(records):
return math.sqrt(\sum([(rui-pui)*(rui-pui) for u,i,rui,pui in records])\
/ float(len(records)))
def MAE(records):
return sum([abs(rui-pui) for u,i,rui,pui in records])\
/ float(len(records))
关于 RMSE 和 MAE 这两个指标的优缺点, Netflix 认为 RMSE 加大了对预测不准的用户物品评分的惩罚(平方项的惩罚),因而对系统的评测更加苛刻。研究表明,如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低 MAE 的误差
TopN 推荐
网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做 TopN 推荐。
TopN 推荐的预测准确率一般通过准确率( precision ) / 召回率(recall )度量。
令 R(u) 是根据用户在训练集上的行为给用户作出的推荐列表,而 T(u) 是用户在测试集上的行为列表。那么,推荐结果的召回率定义为:
推荐结果的准确率定义为:
网友评论