基于物品的协同过滤
对物品进行相似度计算,然后再进行推荐。
基于用户的协同过滤
基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢,并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。
模拟:5个用户分别对两件商品进行了评分。这里的分值可能表示真实的购买、浏览商品的次数、向朋友推荐商品,收藏,分享,或评论等等。这些行为都可以表示用户对商品的态度和偏好程度。
2 Mahout♛定义:Mahout是一个算法库,集成了很多算法;Apache Mahout是一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建指能应用程序;Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。
♛作用:推荐引擎,聚类,分类
3 Mahout协同过滤算法定义
Mahout使用了Taste来提高协同过滤算法的实现,它是一个基于Java实现的可扩展的,高效的推荐引擎。Taste既实现了最基本的基于用户的和基于内容的推荐算法,同时也提供了扩展接口,使用户可以方便的定义和实现自己的推荐算法。
Taste提供的主要接口
a.DataMode
DataModel 是用户喜好信息的抽象接口,它的具体实现支持从任意类型的数据源抽取用户喜好信息。Taste 默认提供JDBCDataModel 和 FileDataModel,分别支持从数据库和文件中读取用户的喜好信息。
b.UserSimilarity 、 ItemSimilarity
UserSimilarity 用于定义两个用户间的相似度,它是基于协同过滤的推荐引擎的核心部分,可以用来计算用户的“邻居”,这里我们将与当前用户口味相似的用户称为他的邻居。ItemSimilarity 类似的,计算Item之间的相似度。
c.UserNeighborhood
用于基于用户相似度的推荐方法中,推荐的内容是基于找到与当前用户喜好相似的邻居用户的方式产生的。UserNeighborhood 定义了确定邻居用户的方法,具体实现一般是基于 UserSimilarity 计算得到的。
4 算法编程下载数据源
代码展示
运行结果
END资料来源:唐银
编辑:吕婕
文中部分图片来源于网络
向上滑动