zoukankan      html  css  js  c++  java
  • DataModel doesn't have preference values

    mahout和hadoop实现简单的智能推荐系统的时候,出现了一下几个方面的错误

    DataModel doesn't have preference values

    意思是DataModel中没有找到初始值,通过现有的算法,我们可以初试话算法,从而实现如下:

      DataModel model = new FileDataModel(new File("F:/htt/work/recommend/src/main/resource/ratings.csv"));
                 CachingRecommender cachingRecommender=new CachingRecommender(new SlopeOneRecommender(model));
                 for (LongPrimitiveIterator iter=model.getUserIDs(); iter.hasNext(); ) {
                    long userId=iter.nextLong();
                     List<RecommendedItem> list =cachingRecommender.recommend(userId, RECOMMENDER_NUM);
                     System.out.printf("uid:%s", userId);
                     for (RecommendedItem ritem : list) {
                            System.out.printf("(%s,%f)", ritem.getItemID(), ritem.getValue());
                        }
                        System.out.println();

    我没有修改的代码如下:

      DataModel model=new FileDataModel(new File("/home/xuyao/mahout/test_data/intro.csv"));
                //UserSimilarity封装了用户间相似性的概念
                UserSimilarity similarity=new PearsonCorrelationSimilarity(model);
                //UserNeighborhood封装了最相似用户组的概念.  2是用户的邻域,指的是最相似的几个用户
                UserNeighborhood neighborhood=new NearestNUserNeighborhood(2,similarity,model);
                //Recommender推荐引擎
                Recommender recommender=new GenericUserBasedRecommender(model,neighborhood,similarity);
                List<RecommendedItem> recommendations=recommender.recommend(1,1);
                for(RecommendedItem recommendation : recommendations)
                    System.out.println(recommendation);
    修改之后采用的是slope算法进行

  • 相关阅读:
    docker容器内使用systemctl报错
    docker构建镜像的两种方式
    PXE无人值守安装系统
    8.iptables自定义链
    7.iptables的黑白名单
    6.iptables的匹配条件(三)
    5.iptables的匹配条件(二)
    第三章 8086指令结构
    一套试卷
    第二章 微机指令
  • 原文地址:https://www.cnblogs.com/youran-he/p/7813661.html
Copyright © 2011-2022 走看看