Mahout 0.9在windows上安装运行
2014-04-18 19:39
363 查看
Mahout 0.9在windows上安装
需要:eclipse,jdk,maven,hadoop详见:http://blog.fens.me/hadoop-mahout-maven-eclipse/
1. 安装maven
下载最新版的maven:http://maven.apache.org/download.cgi解压到E:\maven-3.2.1
将E:\maven-3.2.1\bin添加到环境变量Path中去。
在cmd下输入mvn验证是否成功。
2 eclipse安装maven插件
去下载插件http://www.eclipse.org/m2e/3 用Maven构建Mahout开发环境
1. 用Maven创建一个标准化的Java项目2. 导入项目到eclipse
3. 增加mahout依赖,修改pom.xml
4. 下载依赖
C:\Users\Administrator\workspace是我java的工作目录
1) 用Maven创建一个标准化的Java项目
C:\Users\Administrator\workspace> mvnarchetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.conan.mymahout-DartifactId=myMahout -DpackageName=org.conan.mymahout -Dversion=1.0-SNAPSHOT-DinteractiveMode=false
进入项目,执行mvn命令
C:\Users\Administrator\workspace > cdmyMahout
C:\Users\Administrator\workspace \myMahout>mvn clean install
2) 导入项目到eclipse
我们创建好了一个基本的maven项目,然后导入到eclipse中。这里我们最好已安装好了Maven的插件。
3) 增加mahout依赖,修改pom.xml
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.conan.mymahout</groupId>
<artifactId>myMahout</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>myMahout</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mahout.version>0.9</mahout.version>
//这里是mahout的版本
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-core</artifactId>
<version>${mahout.version}</version>
</dependency>
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-integration</artifactId>
<version>${mahout.version}</version>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
</exclusion>
<exclusion>
<groupId>me.prettyprint</groupId>
<artifactId>hector-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
4) 下载依赖
C:\Users\Administrator\workspace \myMahout> mvn cleaninstall
项目的依赖程序,被自动加载的库路径下面。
实验
用Mahout实现协同过滤userCF
· 1.准备数据文件: item.csv
· 2. Java程序:UserCF.java
· 3.
运行程序
· 4.
推荐结果解读
1. 准备数据
2. ~ mkdir datafile3. ~ vidatafile/item.csv
4.
5. 1,101,5.0
6. 1,102,3.0
7. 1,103,2.5
8. 2,101,2.0
9. 2,102,2.5
10. 2,103,5.0
11. 2,104,2.0
12. 3,101,2.5
13. 3,104,4.0
14. 3,105,4.5
15. 3,107,5.0
16. 4,101,5.0
17. 4,103,3.0
18. 4,104,4.5
19. 4,106,4.0
20. 5,101,4.0
21. 5,102,3.0
22. 5,103,2.0
23. 5,104,4.0
24. 5,105,3.5
25. 5,106,4.0
2. Java程序
新建JAVA类:org.conan.mymahout.recommendation.UserCF.javapackage org.conan.mymahout.recommendation;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.mahout.cf.taste.common.TasteException;
importorg.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
importorg.apache.mahout.cf.taste.impl.model.file.FileDataModel;
importorg.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
importorg.apache.mahout.cf.taste.impl.similarity.EuclideanDistanceSimilarity;
importorg.apache.mahout.cf.taste.model.DataModel;
importorg.apache.mahout.cf.taste.recommender.RecommendedItem;
importorg.apache.mahout.cf.taste.recommender.Recommender;
importorg.apache.mahout.cf.taste.similarity.UserSimilarity;
public class UserCF {
finalstatic int NEIGHBORHOOD_NUM = 2;
finalstatic int RECOMMENDER_NUM = 3;
staticString InputFile = "datafile/Buyer.csv";
staticList<Float> l = new ArrayList<Float>();
publicstatic void main(String[] args) throws IOException, TasteException {
Stringfile = InputFile;
DataModelmodel = new FileDataModel(new File(file));
UserSimilarityuser = new EuclideanDistanceSimilarity(model);
NearestNUserNeighborhoodneighbor = new NearestNUserNeighborhood(
NEIGHBORHOOD_NUM,user, model);
Recommenderr = new GenericUserBasedRecommender(model, neighbor, user);
LongPrimitiveIteratoriter = model.getUserIDs();
ReadAveBuyClick();
Iteratoriterl = l.iterator();
while(iter.hasNext()) {
longuid = iter.nextLong();
List<RecommendedItem>list = r.recommend(uid, RECOMMENDER_NUM);
System.out.printf("uid:%s",uid);
for(RecommendedItem ritem : list) {
if(ritem.getValue() >= x) {
System.out.printf("(%s,%f)",ritem.getItemID(),
ritem.getValue());
}
}
System.out.println();
}
}
}
3. 运行程序
右击UserCF.java运行就可以了。输出:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for furtherdetails.
uid:1(104,4.274336)(106,4.000000)
uid:2(105,4.055916)
uid:3(103,3.360987)(102,2.773169)
uid:4(102,3.000000)
uid:5
4. 推荐结果解读
1. 向用户ID1,推荐前二个最相关的物品, 104和1062. 向用户ID2,推荐前二个最相关的物品,
但只有一个105
3. 向用户ID3,推荐前二个最相关的物品, 103和102
4. 向用户ID4,推荐前二个最相关的物品,
但只有一个102
5. 向用户ID5,推荐前二个最相关的物品,
没有符合的
相关文章推荐
- Mahout0.9安装与配置(完全分布式模式下运行)
- Windows下Apache+MySQL+PHP运行环境的安装图文方法
- mahout-0.9的安装配置
- windows 7 下安装运行VC6
- windows在IDEA环境运行spark程序(spark安装在另一台mac机器)
- # 【ARM-Linux开发】在Win7的电脑上直接运行安装Ubuntu14.04发生的问题 标签(空格分隔): 【Linux开发】 --- > 一段时间以来,一直是在Windows上安装虚拟机
- windows x86下安装mongodb 并配置自动运行
- VB鼠标滚轮插件安装错误集锦:模块与正在运行的windows版本不兼容
- windows安装程序无法将windows配置为在此计算机的硬件上运行
- Windows下将nginx安装为服务运行
- 【node.js】windows安装express:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- win7 64位操作系统下git的安装 显示文件版本和正在运行的windows版本不一致
- dw4 的安装 注册 方法 包括注册码(含已运行如何破解)(限windows)
- redis安装 和 运行(windows)
- windows安装程序无法将windows配置为在此计算机的硬件上运行
- Windows中安装jdk,出现javac不是内部或外部命令 也不是可运行的程序
- Windows安装程序无法将Windows配置为在此计算机的硬件上运行(惠普超级本Pavilion 14-B042TU)
- 在Windows 7 安装、运行 Sniffer
- windows下postgresql安装失败解决方法:无法运行getlocales.exe
- Emacs-002-Windows下的Emacs安装与运行