文档章节

Mahout In Aciotn

开拓者-2017
 开拓者-2017
发布于 2014/07/09 23:28
字数 889
阅读 111
收藏 2

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Mahout In Aciotn 

            作者:Jack Zhang  来自开拓者部落 ,qq群:248087140,欢迎加入我们!

            本文欢迎转载,转载请注明出处 http://my.oschina.net/u/1866370/blog/287907


i.Java和IDE(略)

ii.Maven(略)

iii.Mahout开发环境搭建

            1、Mahout官网:http://mahout.apache.org/

            2、Mahout官网上关于Mahout依赖的页面 http://mahout.apache.org/general/downloads.html

            在2中可以看到Mahout的Maven坐标

<dependency>
    <groupId>org.apache.mahout</groupId>
    <artifactId>mahout-core</artifactId>
    <version>${mahout.version}</version>
</dependency>

具体安装过程

           使用Maven使Mahout的环境搭建变得简单方便,只需在pom中添加如下内容即可。

<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<mahout.version>0.6</mahout.version>
	</properties>

	<dependencies>
		<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>

        说明:

1、Maven的配置说明
<mahout.version>0.6</mahout.version>
以上为将Mahout的版本设置为Maven的全局变量,可以在pom的其他位置,以<version>${mahout.version}</version>的方式引用

<exclusion> 标签
<exclusion>标签的作用是,在导入依赖的时候排除,<exclusion>标签中的jar包
此处排除了org.mortbay.jetty.jetty,org.apache.cassandra.cassandra-all,me.prettyprint.hector-core
其中第二个jar包,在以后的文章中会提到,此处不做说明

2、jar包的说明
mahout-core 为mahout核心包
mahout-integration 将Mahout整合如其他项目的jar包
这坐标的引入将会导致以下全部jar包被引入项目

(包括,mahout的相关包,httpclient,solr,lucene,mongodb和一些在java项目中常常使用的工具包。)

org\apache\mahout\mahout-core\0.6\mahout-core-0.6.jar
org\apache\mahout\mahout-math\0.6\mahout-math-0.6.jar
org\uncommons\maths\uncommons-maths\1.2.2\uncommons-maths-1.2.2.jar
jfree\jcommon\1.0.12\jcommon-1.0.12.jar
com\google\guava\guava\r09\guava-r09.jar
org\apache\mahout\mahout-collections\1.0\mahout-collections-1.0.jar
org\apache\hadoop\hadoop-core\0.20.204.0\hadoop-core-0.20.204.0.jar
commons-cli\commons-cli\1.2\commons-cli-1.2.jar
commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar
commons-logging\commons-logging\1.0.3\commons-logging-1.0.3.jar
commons-codec\commons-codec\1.4\commons-codec-1.4.jar
commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar
commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar
commons-digester\commons-digester\1.8\commons-digester-1.8.jar
commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar
commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar
org\codehaus\jackson\jackson-core-asl\1.8.2\jackson-core-asl-1.8.2.jar
org\codehaus\jackson\jackson-mapper-asl\1.8.2\jackson-mapper-asl-1.8.2.jar
org\slf4j\slf4j-api\1.6.1\slf4j-api-1.6.1.jar
commons-lang\commons-lang\2.6\commons-lang-2.6.jar
org\uncommons\watchmaker\watchmaker-framework\0.6.2\watchmaker-framework-0.6.2.jar
com\thoughtworks\xstream\xstream\1.3.1\xstream-1.3.1.jar
xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar
org\apache\lucene\lucene-core\3.4.0\lucene-core-3.4.0.jar
org\apache\lucene\lucene-analyzers\3.4.0\lucene-analyzers-3.4.0.jar
org\apache\mahout\commons\commons-cli\2.0-mahout\commons-cli-2.0-mahout.jar
org\apache\commons\commons-math\2.2\commons-math-2.2.jar
org\apache\mahout\mahout-integration\0.6\mahout-integration-0.6.jar
commons-dbcp\commons-dbcp\1.4\commons-dbcp-1.4.jar
commons-pool\commons-pool\1.5.6\commons-pool-1.5.6.jar
org\apache\solr\solr-commons-csv\3.4.0\solr-commons-csv-3.4.0.jar
org\mongodb\mongo-java-driver\2.5\mongo-java-driver-2.5.jar
org\mongodb\bson\2.5\bson-2.5.jar

iv.Hadoop(略)

            hadoop的安装可查看本博客Hadoop类目下的相关文章

Mahout程序编写

1、向一个用户推荐一个商品

        第一步:新建一个文本文件,重命名为intro,复制以下内容到intro.txt,将后缀修改为csv。在实际的开发中,我们也将取得类似的日志数据,作为输入文件。

1,101,5.0
1,102,3.0
1,103,2.5
 
2,101,2.0
2,102,3.0
2,103,5.0
2,104,2.0
 
3,101,2.5
3,104,4.0
3,105,4.5
3,107,5.0
 
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
 
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0

第二步:编写基于用户的协同过滤 程序

需求:向ID为1的用户,推荐物品,推荐的物品数为1。

class RecommenderIntro {
    final static int NEIGHBORHOOD_NUM = 2;
    final static int USER_ID = 1;
    final static int RECOMMEND_NUM = 1;
    public static void main(String[] args) throws IOException, TasteException {
    	/**构建文件对象,注意文件路径要正确*/
    	DataModel model = new FileDataModel(new File("intro.csv"));
    	
    	/**用户相识度*/
    	UserSimilarity user = new PearsonCorrelationSimilarity(model);
    	/**近邻*/
    	UserNeighborhood neighborhood  = new NearestNUserNeighborhood(NEIGHBORHOOD_NUM, user, model);
    	/**生成推荐器*/
    	Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, user);
    	
    	/**进行推荐 ,向ID为1的用户推荐 1个物品*/
    	List<RecommendedItem> recommendations = recommender.recommend(USER_ID, RECOMMEND_NUM);
    	for(RecommendedItem recommendation:recommendations){
    		System.out.println(recommendation);
    	}
    }
}

推荐结果

RecommendedItem[item:104, value:4.257081]

2、为推荐程序打分



© 著作权归作者所有

开拓者-2017
粉丝 38
博文 151
码字总数 301625
作品 0
大兴
程序员
私信 提问
Mahout之Taste Webapp实战

Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚...

一枚Sir
2014/06/23
158
0
Mahout 安装、配置

Mahout 的安装 Mahout是 Hadoop 的一种高级应用。运行 Mahout 需要提前安装好 Hadoop,Linux 上 Hadoop 的安装配置可以参考文章: linux 上 JDK 的安装于配置 SSH 无密码登陆的实现 Hadoop 伪...

荔枝壳
2013/11/21
4.5K
0
mahout项目 的mvn eclipse:eclipse 出错

ownloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-eclipse-plugin/2.9/maven-eclipse-plugin-2.9.jar (213 KB at 19.3 KB/sec) [INFO] [INFO] -------------------......

天池番薯
2015/09/19
211
0
org.apache.mahout.math.function.IntDoubleProcedure

学习<mahout in action > SimpleKMeansClustering测试例子的时候,运行报错 环境列表 软件明称 版本 hadoop 0.20.2 mahout 0.4 eclipse Kepler Service Release 1 报错代码: ClassNotFoundEx......

cookqq
2014/01/21
258
0
Apache Mahout:适合所有人的可扩展机器学习框架

在软件的世界中,两年就像是无比漫长的时光。在过去两年中,我们看到了社交媒体的风生水起、大规模集群计算的商业化(归功于 Amazon 和 RackSpace 这样的参与者),也看到了数据的迅猛增长以...

龙鸟
2012/07/11
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq producer的batch

序 本文主要研究一下rocketmq producer的batch batch rocketmq-client-4.6.0-sources.jar!/org/apache/rocketmq/client/producer/DefaultMQProducer.java public class DefaultMQProducer ex......

go4it
昨天
5
0
Delphi中的延时

开发过程中经常会需要使用到延时功能,Delphi中有不少实现延时的方法,网上已有不少文章做过说明和分析,但本着实践出真知的态度,还是亲自动手研究一番心里比较踏实。 常用的延时方法 Slee...

天朝八阿哥
昨天
5
0
001-Consul

Consul安装(单节点) mkdir -p /data/consulcd /data/consulwget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zipunzip consul_1.6.2_linux_amd64.zip复制c......

伟大源于勇敢的开始
昨天
5
0
nginx + frp 搭建内网穿透

上一个项目是开发微信公众号,由于微信的各种烦人操作,只能到处找内网映射工具 ngrok也用过,花生壳也用过 都不怎么稳定,无意间听说了frp,本着一颗折腾的心搭建了一下,结果发现很不错,就...

lineasy
昨天
8
0
构建CRD工程 - 程序员学点xx 43 k8s

Kubernetes -3- <!--more--> <center>这是yann的第98篇分享</center> [TOC] 本日状态: 帮同事排了一天bug。 Kubernetes -3- <!--more--> 这是yann的第98篇分享 第 1 部分 承前 昨天用视屏的方......

tmp4
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部