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

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