mahout0.7 示例运行纪实
http://1992mrwang.blog.51cto.com/3265935/1205282
运行太不容易了 所以要记下来以免后面忘记了
首先是数据
vim testdata.txt
第一列为UserID ,第二列为ItemID,第三列为Preference Value 即评分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1 , 101 , 5
1 , 102 , 3
1 , 103 , 2.5
2 , 101 , 2
2 , 102 , 2.5
2 , 103 , 5
2 , 104 , 2
3 , 101 , 2.5
3 , 104 , 4
3 , 105 , 4.5
3 , 107 , 5
4 , 101 , 5
4 , 103 , 3
4 , 104 , 4.5
4 , 106 , 4
5 , 101 , 4
5 , 102 , 3
5 , 103 , 2
5 , 104 , 4
5 , 105 , 3.5
5 , 106 , 4
|
新建立一个工程
导入 mahout包 mahout-core-0.7-job.jar
这样进行开发的时候就不会出现各种红叉叉 从编程心情上会更好一点
新建一个类 RecommenderIntro
代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;
import java.io.*;
import java.util.*;
public class RecommenderIntro {
private RecommenderIntro(){}
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel( new File(
"intro.csv" )); // step:1 构建模型
UserSimilarity similarity = new PearsonCorrelationSimilarity(model); // 2 计算相似度
UserNeighborhood neighborhood = new NearestNUserNeighborhood( 2 ,
similarity, model); // 3 查找邻近
Recommender recommender = new GenericUserBasedRecommender(model,
neighborhood, similarity); // 4 构造推荐引擎
List<RecommendedItem> recommendations = recommender.recommend( 1 , 2 ); // 为用户1推荐两个ItemID
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
}
|
这样就能够运行了
但是会报错 原因在于没有导入它所需要的所有包
在mahout当中 只要你正确安装了都会有他所需要的包
除了google的一个需要自己下
1
2
3
4
5
6
7
|
mahout-core- 0.7 -job.jar
slf4j-api- 1.6 . 1 .jar
slf4j-jcl- 1.6 . 1 .jar
google-collection- 1.0 -rc2.jar //这个找不到 然后需要自己下载一个 guava-r09.zip 用当中的 guava-r09.jar来解决这个google依赖问题
commons-logging- 1.1 . 1 .jar
mahout-math- 0.7 .jar
uncommons-maths- 1.2 . 2 .jar
|
然后就能够运行了
结果 应该是
1
2
3
4
5
6
7
8
9
10
|
2013 - 5 - 21 2 : 45 : 56 org.slf4j.impl.JCLLoggerAdapter info
信息: Creating FileDataModel for file /root/input/testMahout.txt
2013 - 5 - 21 2 : 45 : 56 org.slf4j.impl.JCLLoggerAdapter info
信息: Reading file info...
2013 - 5 - 21 2 : 45 : 56 org.slf4j.impl.JCLLoggerAdapter info
信息: Read lines: 21
2013 - 5 - 21 2 : 45 : 56 org.slf4j.impl.JCLLoggerAdapter info
信息: Processed 5 users
RecommendedItem[item: 104 , value: 4.257081 ]
RecommendedItem[item: 106 , value: 4.0 ]
|
总结:
主要是依赖问题解决用了比较长的时间
我用的ubuntu 下开发 所以在找包的时候 直接用 find | grep *** 在mahout 的安装目录下去寻找包
参考自:http://blog.csdn.net/aidayei/article/details/6626699
mahout0.7 示例运行纪实相关推荐
- ROS 学习笔记(三):自定义服务数据srv+server+client 示例运行
ROS 学习笔记(三):自定义服务数据srv+Server+Client 示例运行 一.自定义服务数据: 1.向功能包添加自定义服务文件(AddTwoInts.srv) cd ~/catkin_ws/ ...
- ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行 一.自定义消息: 1.新建msg文件夹,创建定义Person.msg 文件 mkdir -p ~/catk ...
- 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...
- 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...
- 【DDSCAT——离散偶极近似仿真程序10】DDSCAT内置示例运行结果
此部分我们整理了DDSCAT 7.3.0 Examples中所有的示例的单波长运行结果,并对vtr文件进行了可视化. 对于所有的示例文件,只有个别的ddscat.par中设定了1 = NRFLD,即进 ...
- 【气象水文】WRF示例运行与后处理软件
[目的]用于备忘WRF的安装过程,记录所遇到问题与解决方式: [安排]该内容分为三个部分:WRF模型安装.示例运行.可视化环境配置. [操作系统与软件]Windows系统与其子系统Ubuntu系统 [ ...
- 【Android 插件化】DroidPlugin 编译运行 ( DroidPlugin 简介 | 编译 DroidPlugin 官方示例 | 运行 DroidPlugin 官方示例 )
文章目录 一.DroidPlugin 简介 二.DroidPlugin 编译运行 1.编译 DroidPlugin 官方示例 2.运行 DroidPlugin 官方示例 一.DroidPlugin 简 ...
- 【错误记录】Tinker 热修复示例运行报错 ( Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!! )
文章目录 一.报错信息 二.问题分析 三.解决方案 1.解决方案 1 2.解决方案 2 一.报错信息 运行 tinker 官方示例 https://github.com/Tencent/tinker/ ...
- 学习笔记:Maxent的示例运行及部分结果解释
文件准备 Samples文件 .csv格式 通常为三列,分别为"物种"."经度"."纬度" Tips: 默认情况下会删除重复项(同一网格单元 ...
最新文章
- 几种常用的C#排序方法简介
- 微分求积:复化梯形、复化辛浦生
- 【今日互联网大事儿】小米净化器出来了呢
- 【收藏】Spark之RDD的mapPartitions算子
- 爬取了京东商城上的部分手机评论数据,仅供学习使用
- linux boot procedure
- Python 辨异 —— __init__ 与 __new__
- ArrayList和LinkedList(转)
- 机器学习基础---超参数和验证集
- SQLCLR(一)入门
- jQuery 查找父元素
- mysql加密复制_MySQL主从复制使用SSL加密
- android开发根据分辨率设置高度,【android】根据屏幕分辨率设置底栏高度
- java三色球问题_2020100期专业玩彩双色球走势分析
- svm python 多分类_机器学习之SVM多分类
- python读取xps文件_Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
- Java中unicode占几个,Java语言使用的是Unicode字符集,每个字符在内存中占8位。()...
- 电子设计教程53:555定时器工作原理与常见应用
- 点对点视频分发:从早期互联网到ZB字节(Zettabyte)时代的分布式网络
- Linux常用命令汇总 - 近乎全量命令!