一个简单的基于用户的推荐系统+缓存机制
2014-11-11 12:00
525 查看
DataModel model=new FileDataModel(new File("intro.csv")); //.csv是逗号文件
UserSimilarity similarity=new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood=new nearestNUserNeighborhood(2,similarity,model);
Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);
UserSimilarity封装了用户间相似性的概念,而Userneighborhood封装了最相似用户组的概念。它们是标准的基于用户推荐算法的必要组件。
一个推荐系统,通常包括如下组件:
1.数据模型,由DataModel实现
2.用户间的相似性度量,由UserSimilarity实现
3.用户领域(组)的定义,由UserNeighborhood实现
4.推荐引擎,由一个Recommender实现
Mahout有缓存封装机制,CachingUserSimilarity是UserSimilarity的一种实现,它封装了另一个UserSimilarity的实现并缓存其结果。也就是说它利用另一个实现进行计算,并将得到的结果进行内部缓存。然后,当需要提供一个已经计算过的用户间相似度时,它就可以直接返回,而不需要该实现重新进行计算。可以用这个办法为任何相似性度量的实现添加缓存功能。当计算的代价很高时,引入这种机制是值得的。当然,缓存是有代价的,它会消耗内存。
例:为UserSimilarity实现引入缓存机制
UserSimilarity similarity=nwe CachingUserSimilarity(new SpearmanCorrelationSimilarity(model),model);
UserSimilarity similarity=new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood=new nearestNUserNeighborhood(2,similarity,model);
Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);
UserSimilarity封装了用户间相似性的概念,而Userneighborhood封装了最相似用户组的概念。它们是标准的基于用户推荐算法的必要组件。
一个推荐系统,通常包括如下组件:
1.数据模型,由DataModel实现
2.用户间的相似性度量,由UserSimilarity实现
3.用户领域(组)的定义,由UserNeighborhood实现
4.推荐引擎,由一个Recommender实现
Mahout有缓存封装机制,CachingUserSimilarity是UserSimilarity的一种实现,它封装了另一个UserSimilarity的实现并缓存其结果。也就是说它利用另一个实现进行计算,并将得到的结果进行内部缓存。然后,当需要提供一个已经计算过的用户间相似度时,它就可以直接返回,而不需要该实现重新进行计算。可以用这个办法为任何相似性度量的实现添加缓存功能。当计算的代价很高时,引入这种机制是值得的。当然,缓存是有代价的,它会消耗内存。
例:为UserSimilarity实现引入缓存机制
UserSimilarity similarity=nwe CachingUserSimilarity(new SpearmanCorrelationSimilarity(model),model);
相关文章推荐
- R语言实战实现基于用户的简单的推荐系统(数量较少)
- 分布式系统基于缓存机制的实时开关系统——可将一个指令同时推送给N个主机
- 一个简单的基于用户的mahout推荐程序
- R语言实战实现基于用户的简单的推荐系统(数量较少)
- 基于用户行为的推荐系统
- 一个资源管理系统的设计--基于cgroup机制
- 基于用户的deviantArt推荐系统(SVD因子分解)
- 一个资源管理系统的设计--基于cgroup机制
- 在RHEL5下构建基于系统用户的Postfix邮件系统 推荐
- 编写一个简单的用户管理系统(工厂代理模式)
- 基于atmel mega88编写了一个简单的时间触发系统单片机框架程序
- RedHat 5.4+ Postfix +Extmail实现基于虚拟用户的邮件系统(一) 推荐
- 【分享】分享一个基于SSH实现的简单学生选课系统(附源码)
- Castle AOP 系列(四):实现一个简单的基于上下文调用的权限校验机制
- 基于用户的协作性过滤推荐系统(找出相似的电影)
- 推荐系统-基于用户的最近邻协同过滤算法(MovieLens数据集)
- 一个简单的JavaScript数据缓存系统实现代码
- 建立和维护一个简单的PKI系统 推荐
- 使用欧几里德距离构建简单的推荐系统计算用户相似度
- 基于物品的协作性过滤推荐系统(为用户推荐影片)