校招结束休息了快2个多月了,现在开始系统的学习推荐算法,基于项亮的书
一:推荐系统中主要有3种评测推荐结果的实验方法:
**1:离线实验
2:用户调查
3:在线实验**
离线实验的方法:
(1):通过日志系统获得用户行为数据
(2):将数据集分成训练集和测试集
(3):在训练集上训练模型,在测试集上进行测试
(4):通过事先定义的离线指标评测算法在测试集上的预测结果
用户调查:
顾名思义,但是招募测试用户的代价较大,很难组织大规模的测试用户
在线实验:
在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较
二:评测指标
1.预测准确度
预测准确度考虑推荐算法的预测打分与用户实际打分的相似程度。
平均绝对误差指标MAE(Mean Absolute Error):
平均平方误差MSE:
有一个电影评价系统,它可以对某一部电影给出其他用户评价电影的“星”的平均数(就好像豆瓣书评一样),而且给出对某个用户的预测“星数”。而预测准确度就是能够度量系统中预测“星”数与用户实际给出的“星”数的差别。打分区间为[0,10]
平均绝对误差MAE:
平均平方误差MSE:
标准平均绝对误差(做标准化):
预测准确度
预测准确度 |
---|
优点 |
缺点 |
、
准确率(Precision),召回率(Recall),覆盖率(coverage)
为了评估推荐算法的好坏需要各方面的评估指标。
对用户u推荐N个物品(记为R(u)),令用户u在测试集上喜欢的物品集合为T(u)
准确率就是最终的推荐列表中有多少是推荐对了的。描述最终的推荐列表中有多少比例是发生过的用户-物品评分记录。
召回率就是推荐对了的占全集的多少。描述有多少比例的用户-物品评分记录包含在最终的推荐列表中。
下图直观地描述了准确率和召回率的含义
覆盖率表示推荐的物品占了物品全集空间的多大比例。
最简单的覆盖率的定义如下:
新颖度新颖度是为了推荐长尾区间的物品。用推荐列表中物品的平均流行度度量推荐结果的新颖度。如果推荐出的物品都很热门,说明推荐的新颖度较低,否则说明推荐结果比较新颖。
这篇文章可以参考看一下,比我总结的清晰
http://blog.csdn.net/wangyuquanliuli/article/details/36684817