推荐系统
文章平均质量分 73
Lesley dude
信仰
展开
-
[推荐算法]Slope One算法
和其他类似算法相比,最大特点是算法简单,易于实现,执行效率高 基本概念: 现在 用户 X,Y,Z都对itemA进行评分,并且X,Y也对itemB进行了评分,那么Z对itemB的评分应该是多少呢? 根据 Slope One算法,?= 4 - [( 5 - 10 ) + ( 3 - 6 )] / 2 = 8 解释一下,X对B的评分比A多5, Y对B的评分比A多3,那么平均原创 2015-08-12 11:48:20 · 712 阅读 · 0 评论 -
[推荐算法]Pearson Correlation Similarity 的python实现
皮尔逊相似度是推荐算法中常见的 计算相似度的方法,其公式如下: 从公式可以看出 该算法有几个缺点: 1,如果用户A对所有item的评分都一样,那么将无法计算别人跟A的相似度(分母为0);所以该算法不适用于 like or dislike类型的推荐 2,如果用户A只对1个item进行了评分,那么也无法计算别人跟A的相似度(分母为0);所以对于数据量较小,或者矩阵非常之稀疏的数据都不太好原创 2015-08-13 23:19:05 · 4618 阅读 · 0 评论 -
[推荐系统]mahout中实现的几种相似度计算方法
1, pearson correlation similarity 有以下缺点: 1,如果2个人有200个common item,尽管ratings并不总是一样,但她们的相似度 可能没2个只有2 commen item的人的相似度好。看下图User1 和User5的相似度还不及User1和User4的,这好像不太科学 2,如果2 users只有一个common item,原创 2015-08-13 23:38:24 · 2850 阅读 · 2 评论 -
[mahout in action]mahout中用于推荐引擎的数据结构(一)
本文基本上是对《mahout in action》相关内容的读书笔记 推荐系统的好坏 大部分取决于 数据的质量和数量。正所谓“garbage in, garbage out” 1,user 对 item的 preference数据 Preference,一个接口,代表着 1个user(long) 对1个item (long) 的preference value(int),实现原创 2015-08-15 17:14:35 · 1013 阅读 · 0 评论 -
[推荐系统]mahout支持的对推荐引擎的评价方法
先说3种简单的评测方式 1,平均绝对误差,Average Absolute difference,越小越好 2,RMS,Root-mean-square,对偏离较大的值惩罚较大。也是越小越好 3,准确率和召回率 在有rating的评测里,要给 prcision 和 recall 设置一个 threashold 用于区分good recommendation和bad原创 2015-08-17 12:42:28 · 883 阅读 · 0 评论 -
[mahout in action]mahout中用于推荐引擎的数据结构(二)
DataModel是在Mahout中封装推荐引擎输入数据的抽象接口。实现类包括GenericDataModel,FileDataModel mahout中读取数据的方式有很多种,可以分为 手动录入,从file读取,从数据库读取 这里参考 《mahout in action》简单说一下手动录入方式,以及从file读取的方式。从数据库读取可参考API文档 手动: FastByI原创 2015-08-15 19:17:02 · 748 阅读 · 0 评论 -
[mahout in action]mahout推荐引擎如何处理无rating数据
并不是所有的 user和item的关系都可以用评分来衡量的。例如 新闻应用,我们大多数情况下只有 user的浏览记录。电商网站,记录了user看过哪个商品。这些都代表着user的兴趣。 或许对于电影评分,我们可以理解为,用户对这一类电影感兴趣(不感兴趣的连看都不会看,更不用说评分了),但是对个别电影的观后感不同导致评分不同。但如果还有该类型的电影,用户依然会去看(看完可能 评5分,也可能原创 2015-08-16 22:54:26 · 713 阅读 · 0 评论