一个简单的基于用户的推荐系统+缓存机制

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);

 

做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕

转载于:https://www.cnblogs.com/longzhongren/p/4089100.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值