zoukankan      html  css  js  c++  java
  • 一个简单的基于用户的推荐系统+缓存机制

    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颈椎保健枕

  • 相关阅读:
    FarPoint FpSpread控件的使用收藏
    在Oracle中使用Guid
    oracle 语句的妙用例子
    让服务器iis支持.apk文件下载的设置方法
    oracle 自动生存清库脚本
    winform 消息通讯组件实习
    在css中使用边框做三角形
    JavaScript闭包和ajax
    JavaScript面向对象
    正则表达式
  • 原文地址:https://www.cnblogs.com/longzhongren/p/4089100.html
Copyright © 2011-2022 走看看