基于用户的协同过滤推荐模型
2017-06-12 09:52
357 查看
协同过滤推荐是推荐系统广泛使用的一种技术。它的主要思想是建立用户与用户、物品与物品之间的相似性联系。并将这些转化为有意义的数据。常用语电商网站中,以为客户推荐其喜好产品为目的。主要的系统过滤推荐方式主要有以下四种:
- 基于用户的协同过滤推荐
- 基于物品的协同过滤推荐
- 基于模型的协同过滤推荐
- 混合协同过滤推荐
对于编号为200的用户,使用皮尔逊相关系数(PearsonCorrelationSimilarity)和(NearestNUserNeighborhood)计算用户相似度,得到Top10及其评分表如下:
注:对于两个数据集X,Y,他们的相关性可以使用皮尔逊相关系数表达(PearsonCorrelationSimilarity):
- 基于用户的协同过滤推荐
- 基于物品的协同过滤推荐
- 基于模型的协同过滤推荐
- 混合协同过滤推荐
基于用户的相似性计算
基于用户的相似性计算非常简单。在一个系统中,我们假设具有相同爱好的客户的喜欢相同的物品。对用户的相似性计算可以用过Mahout机器学习实现,代码如下final DataModel model = new FileDataModel(new File("src/main/resources/u.data")); UserSimilarity similarity = new PearsonCorrelationSimilarity(model); int n = 20; UserNeighborhood neighborhood = new NearestNUserNeighborhood(n, similarity, model); final UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); long userID = 200; int topN = 10; List<RecommendedItem> recommendations = recommender.recommend(userID, topN); for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation.getItemID() + ": " + recommendation.getValue()); }
对于编号为200的用户,使用皮尔逊相关系数(PearsonCorrelationSimilarity)和(NearestNUserNeighborhood)计算用户相似度,得到Top10及其评分表如下:
316: 5.0 895: 4.6441307 100: 4.6418004 315: 4.564026 896: 4.5467043 285: 4.5023627 344: 4.475635 346: 4.4689593 272: 4.4235177 750: 4.297509
注:对于两个数据集X,Y,他们的相关性可以使用皮尔逊相关系数表达(PearsonCorrelationSimilarity):
相关文章推荐
- 数据挖掘笔记-基于用户协同过滤推荐的简单实现
- 推荐系统-通过数据挖掘算法协同过滤讨论基于内容和用户的区别
- 基于用户的协同过滤推荐
- 【推荐系统】协同过滤之基于用户的最近邻推荐
- 基于用户协同过滤的推荐系统算法,python 实现
- Mahout系列之推荐算法-基于用户协同过滤
- 基于用户的协同过滤推荐
- R全面解析Mahout的基于用户推荐协同过滤算
- 基于Hbase的用户评分协同过滤推荐算法
- 基于物品的协作性过滤推荐系统(为用户推荐影片)
- 基于用户的协作性过滤推荐系统(找出相似的电影)
- 《推荐系统实战》-基于用户的系统过滤推荐
- 基于用户的协同过滤和皮尔逊相关系数
- 基于用户的协同推荐算法
- 数据挖掘-matlab实现基于MovieLens数据集的协同过滤电影推荐系统
- (数据挖掘-入门-1)基于用户的协同过滤之最近邻
- 基于协同过滤思想的 道具推荐引擎 算法设计
- 基于用户的协同过滤和皮尔逊相关系数
- (数据挖掘-入门-1)基于用户的协同过滤之最近邻
- 协同过滤——基于用户的推荐算法