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 示例运行纪实的更多相关文章
- S2X环境搭建与示例运行
S2X环境搭建与示例运行 http://dbis.informatik.uni-freiburg.de/forschung/projekte/DiPoS/S2X.html 环境 Maven proje ...
- Appium(JAVA)Windows 7系统搭建及示例运行
Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http:// ...
- 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录
目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 StdPeriphLi ...
- 转载:官方Caffe-windows 配置与示例运行
转载来自:http://blog.csdn.net/guoyk1990/article/details/52909864 本文主要介绍官方给出的caffe-windows的配置及如何训练mnist数据 ...
- 官方Caffe-windows 配置与示例运行
http://blog.csdn.net/guoyk1990/article/details/52909864 标签: caffewindows配置训练自己的数据 2016-10-24 13:34 1 ...
- Flink快速入门--安装与示例运行
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性.高吞吐.低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行. 首先要想运行Flin ...
- istio 安装与bookinfo示例运行
目的 本文旨在帮助想了解istio安装和运行bookinfo示例的同学快速入门 前置准备 安装k8s和helm 1.k8s安装 修改主机名 hostnamectl set-hostname k8s-m ...
- Hama安装及示例运行
Hama介绍 Apache Hama是一个纯BSP(Bulk Synchronous Parallel)计算框架,模仿了Google的Pregel.用来处理大规模的科学计算,特别是矩阵和图计算. BS ...
- Abp zero 示例运行
https://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template-Core Introduction The easiest wa ...
随机推荐
- java ftp上载下传 遇到的问题
1.下载文件中文乱码,和下载文件大小为0kb /** * Description: 从FTP服务器下载文件 * * @param url * FTP服务器hostname * @param port ...
- git 仓库迁移,git remote 更改源
git仓库迁移 我们有时候需要迁移git仓库,但又想保留每次commit的记录,所以我们只需要更改git remote [源]的问题即可 首先查看你的remote的地址 git remote -vv ...
- Java使用独立数据库连接池(DBCP为例)
目前,绝大多数的软件系统都会使用数据库,而在软件构建起来之后,访问数据库又成为软件系统性能的短板(I/O操作).一般来说一次访问数据库就需要一个数据库连接.而每次创建数据库连接都需要访问,分配空闲资源 ...
- 正确识别希捷Backup Plus新睿品1TB正品,杜绝奸商猖獗
刚刚在百度希捷贴吧发了此贴, 马上被删除, 无奈只能发于个人博客, 望看到的朋友能转载到"合适"位置,让更多的朋友看到. 避免上当. 最近准备买个移动硬盘备份电脑资料,看上了睿品 ...
- linux下授予某用户对某文件夹的读写权限
- 窗体的Alpha通道透明色支持
参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190768 Windows 2000后,为了支持类似MAC界面的Alpha通道混合效果,提 ...
- SQLCE使用
Windows Phone的本地数据库SQL Server CE是7.1版本即芒果更新的新特性,所以你要在应用程序中使用SQL Server CE数据库必须使用Windows Phone 7.1的AP ...
- UINavigationController 、UINavigationBar 、UINavigationItem 超清晰直观详解
UINavigationController 部分 1. UINavigationController 是一个容器类.里面盛放的是UIViewController. 容器的意思是,如果你不放入UIVi ...
- 【java】判断某段字符串的编码方式,并按照新的编码方式输出
具体操作: String destination ="testå¾·ç\u008E\u009B西äº\u009A"; try { if(destination.equals(n ...
- Android_深入解析AsyncTask
转载:特别感谢浪人的星空,有部分修改! http://blog.csdn.net/hitlion2008/article/details/7983449 1.AsyncTask的内幕 AsyncTas ...