zoukankan      html  css  js  c++  java
  • day21-22Redis Mahout


    PS: Redis 在博客的 JavaEE

    PS:大数据实时执行3个特性,Storm,kafka,Redis

    PS:比如在系统中,1s中有大量的请求涌入的系统中,那么请求就存入数据库就挂了,这就需要到了Redis缓存了。

     

    day22 ------------------------

    PS: 主要讲诉了日志采集系统,后台又代码,可以参看   flume +kafka+  storm +redis

     

    package mahout;
    
    import org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender;
    import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
    import org.apache.mahout.cf.taste.model.DataModel;
    import org.apache.mahout.cf.taste.recommender.RecommendedItem;
    import org.apache.mahout.cf.taste.similarity.ItemSimilarity;
    import org.apache.mahout.cf.taste.similarity.precompute.example.GroupLensDataModel;
    
    import java.io.File;
    import java.util.List;
    
    /**
     * Describe:
     * 与基于用户的技术不同的是,这种方法比较的是内容项与内容项之间的相似度。
     * Item-based 方法同样需要进行三个步骤获得推荐:
     * 1)得到内容项(Item)的历史评分数据;
     * 2)针对内容项进行内容项之间的相似度计算,找到目标内容项的“最近邻居”;
     * 3)产生推荐。这里内容项之间的相似度是通过比较两个内容项上的用户行为选择矢量得到的。
     * 第二代协同过滤算法
     * Author:   maoxiangyi
     * Domain:   www.itcast.cn
     * Data:     2015/11/26.
     */
    public class BaseItemRecommender {
    
        public static void main(String[] args) throws Exception {
            //准备数据 这里是电影评分数据
            File file = new File("E:\itcast\项目中心\大数据课程研发\大数据课程-参考资料\推荐系统\数据\ml-10m\ml-10M100K\ratings.dat");
            //将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的
            DataModel dataModel = new GroupLensDataModel(file);
            //计算相似度,相似度算法有很多种,欧几里得、皮尔逊等等。
            ItemSimilarity itemSimilarity = new PearsonCorrelationSimilarity(dataModel);
            //构建推荐器,协同过滤推荐有两种,分别是基于用户的和基于物品的,这里使用基于物品的协同过滤推荐
            GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(dataModel, itemSimilarity);
            //给用户ID等于5的用户推荐10个与2398相似的商品
            List<RecommendedItem> recommendedItemList = recommender.recommendedBecause(5, 2398, 10);
            //打印推荐的结果
            System.out.println("使用基于物品的协同过滤算法");
            System.out.println("根据用户5当前浏览的商品2398,推荐10个相似的商品");
            for (RecommendedItem recommendedItem : recommendedItemList) {
                System.out.println(recommendedItem);
            }
            long start = System.currentTimeMillis();
            recommendedItemList = recommender.recommendedBecause(5, 34, 10);
            //打印推荐的结果
            System.out.println("使用基于物品的协同过滤算法");
            System.out.println("根据用户5当前浏览的商品2398,推荐10个相似的商品");
            for (RecommendedItem recommendedItem : recommendedItemList) {
                System.out.println(recommendedItem);
            }
            System.out.println(System.currentTimeMillis() -start);
        }
    }
  • 相关阅读:
    51nod1229 序列求和 V2
    51nod 1228、1258 序列求和
    题解P3711:【仓鼠的数学题】
    伯努利数学习笔记的说...
    题解 P4692 【[Ynoi2016]谁的梦】
    积性函数与卷积
    题解 P5065 【[Ynoi2014]不归之人与望眼欲穿的人们】
    [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?
    [51nod1965]奇怪的式子
    PGCD2
  • 原文地址:https://www.cnblogs.com/bee-home/p/8619929.html
Copyright © 2011-2022 走看看