1 评分预测:预测用户对物品的评分
RMSE均方根误差=实际评分差的平方的平均数,再开根号
MAE均方根误差=实际评分差的平均数
RSME 加大了对预测不准的用户物品评分的惩罚,因而对系统的惩罚更加苛刻。
def RSME(records):
allsum= sum(pow(real - predict,2) for real, predict in records)
avg = allsum / float(len(records))
return math.sqrt(avg)
def MAE(records):
allsum = sum(abs(real - predict) for real, predict in records)
avg = allsum / float(len(records))
return math.sqrt(avg)
2 TopN 推荐的预测准确率
网站在提供服务时,一般会给用户一个个性化的推荐列表。
召回率: 准确的有多少个被预测出来了
预测集中个数^实际集中个数/实际集中个数
准确率: 预测中有多少个准确的
预测集中个数^实际集中个数/预测集中个数
def recall(tests, N):
for user,items in tests.items():
topN = GetTopN(User,N)
Hit += useritems & topN # set 交集 累加
real_total += items # 实际集中数目累加
predict_total += N # 预测集中累加,每次预测N ,则每次加 N
recall = hit/ real_total
precision = hit / predict_total
网友评论