校招结束休息了快2个多月了,现在开始系统的学习推荐算法,基于项亮的书
一:推荐系统中主要有3种评测推荐结果的实验方法:
1:离线实验
2:用户调查
3:在线实验
离线实验的方法:
(1):通过日志系统获得用户行为数据
(2):将数据集分成训练集和测试集
(3):在训练集上训练模型,在测试集上进行测试
(4):通过事先定义的离线指标评测算法在测试集上的预测结果
用户调查:
顾名思义,但是招募测试用户的代价较大,很难组织大规模的测试用户
在线实验:
在完成离线实验和必要的用户调查后,可以将推荐系统上线做AB测试,将它和旧的算法进行比较
二:评测指标
1.预测准确度
预测准确度考虑推荐算法的预测打分与用户实际打分的相似程度。
平均绝对误差指标MAE(Mean Absolute Error):
1.jpg image平均平方误差MSE:
image
标准平均绝对误差(做标准化):
image
预测准确度
|预测准确度|
--|-------
优点|平均绝对误差MAE: 1.计算方法简单,易于理解; 2.每个系统的平均绝对误差唯一,从而能够区分两个系统平均绝对误差的差异
缺点|不适合二元选择信息,如喜欢或不喜欢不适合那些只在意推荐列表前端的预测误差,而对系统的整体误差并不是很在意的系统在用户偏差的程度比较小时也不适用,因为用户只关心把好产品错归为坏产品 ,或者把坏产品错归为好产品的比例。例如 ,以 3.5个星为界区分好坏 ,那么把4预测成了5,或者把3预测成了2都对用户没有影响。
、
准确率(Precision),召回率(Recall),覆盖率(coverage)
为了评估推荐算法的好坏需要各方面的评估指标。
对用户u推荐N个物品(记为R(u)),令用户u在测试集上喜欢的物品集合为T(u)
<b>准确率</b>就是最终的推荐列表中有多少是推荐对了的。描述最终的推荐列表中有多少比例是发生过的用户-物品评分记录。
<b>召回率</b>就是推荐对了的占全集的多少。描述有多少比例的用户-物品评分记录包含在最终的推荐列表中。
下图直观地描述了准确率和召回率的含义
<b>覆盖率</b>表示推荐的物品占了物品全集空间的多大比例。
最简单的覆盖率的定义如下:
新颖度新颖度是为了推荐长尾区间的物品。用推荐列表中物品的平均流行度度量推荐结果的新颖度。如果推荐出的物品都很热门,说明推荐的新颖度较低,否则说明推荐结果比较新颖。
这篇文章可以参考看一下,比我总结的清晰
http://blog.csdn.net/wangyuquanliuli/article/details/36684817
网友评论