您的位置:首页 > 其它

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

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: