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算法进行
DataModel doesn't have preference values的更多相关文章
- Apache mahout 源码阅读笔记--协同过滤, PearsonCorrelationSimilarity
协同过滤源码路径: ~/project/javaproject/mahout-0.9/core/src $tree main/java/org/apache/mahout/cf/taste/ -L 2 ...
- 淘宝(阿里百川)手机客户端开发日记第五篇 SharedPreferences使用详解
我们知道,Android中数据存储技术由于如下几种 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 ...
- android入门之: SharedPreferences
读取数据: 保存数据: +++++++++++++++++++方法详解++++++++++++++++++++++++++++++ SharedPreferences综述: 使用getSharedPr ...
- activity状态的保存和保持(onRetainNonConfigurationInstance和getLastNonConfigurationInstanc
本文转载于:http://chengbs.iteye.com/blog/1156167 比较onsaveinstancestate() 与 onretainnonconfigurationinstan ...
- android-数据持久化
动态文件 String FILE_NAME = "tempfile.tmp"; try { //读 FileInputStream fis = openFileInput(FILE ...
- SP的封装(数据持久化方式一)
1.先看一段描述: Interface for accessing and modifying preference data returned by Context.getSharedPrefere ...
- JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体
1. struts 工作流程图 超链接 2. 入门案例 struts入门案例: 1.写一个注册页面,把请求交给 struts处理 <form action="${pageContext ...
- File System Programming --- (二)
File System Basics The file systems in OS X and iOS handle the persistent storage of data files, app ...
- Android偏好设置(6)应用和监听各偏好参数
Reading Preferences By default, all your app's preferences are saved to a file that's accessible fro ...
随机推荐
- 如何正确遍历删除List中的元素,你会吗?
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题.下面主要看看以下几种遍历删除List中元素的形式: 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合 ...
- Bean的基于XML配置方式
基于XML配置 Beans.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns= ...
- python数据分析笔记中panda(3)
1 按照空格将一列的内容分为两列 from pandas import Series; from pandas import DataFrame; from pandas import read_cs ...
- LeetCode: 463 Island Perimeter(easy)
题目: You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 repr ...
- WeFlow 简单使用教程
一.前言 WeFlow 是什么?一个高效.强大.跨平台的前端开发工作流工具.(官网定义),下载那些你们都知道,我就不一 一介绍了.下面我说一下简单使用: 二.使用教程 首先,我们使用 WeFlow 是 ...
- CSS小技巧收藏
居中对齐 很多时候我们需要把一个元素在其父级容器里水平.垂直居中对齐.以下我列出了常用的几种方法: 1.在知道子元素宽度与高度的情况下进行居中,采用位置定位:absolute + margin .pa ...
- Lightoj1013【DP_LCS】
题意: 给你两个字符串,让你求一个最短字符串,其中存在给出串的种类: 求这个字符串的长度和种类: 思路: //dp[i,j,k]表示前i个字符,包含s1串前j个字母,包含s2串前k个字符时的方案数. ...
- 51nod1242【矩阵快速幂】
基础题.. wa在n的范围需要用long long = =.长个记性 #include<bits/stdc++.h> using namespace std; typedef long l ...
- laravel 安装配置前准备
Laravel 框架使用 Composer 来管理其依赖性.所以,在你使用 Laravel 之前,你必须在你电脑上是否安装了 Composer.最简单的获取Composer的方式就是百度之,百度关键字 ...
- 简单实现TabBar的自定义
StackoverFlow上看到的,通过继承UITabBarController创建自定义TabBarController.在原有TabBar的基础上添加一个背景层,在其基础上增加三个自定义按钮,通过 ...