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


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

  • 相关阅读:
    20181205关于android动态权限管理的总结与思考。
    pixel2坑
    Picasso遇到的坑
    集成主流框架搭建项目
    outdoor-youwin
    利用scatter()绘制颜色映射的二次方曲线
    一个有意义的Day类
    [Hadoop] Yarn & k8s
    hadoop 操作
    yarn 图形化监控
  • 原文地址:https://www.cnblogs.com/longzhongren/p/4089100.html
Copyright © 2020-2023  润新知