apache mahout 是 apache software foundation(asf) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚类、分类、协同过滤、进化编程等等,并且,在 mahout还支持在hadoop集群中运行,使这些算法可以更高效的运行在云计算环境中。
目前mahout已经发布的最高版本是0.5。在这里https://cwiki.apache.org/confluence/display/mahout/buildingmahout可以找到mahout的下载路径,可以下载0.5版本的源码压缩包,也可以从svn中co主干代码。但是主干代码0.6-snapshot中没有找到taste-webapp相关代码。
后面的介绍都是以0.5版本的源代码包为基础做的介绍。
1.下载代码后,解压。然后命令行进入mahout-distribution-0.5目录执行
mvn -dskiptests install
将mahout相关模块进行编译,并安装到本地maven仓库中
如果出现内存溢出,可以先调大jvm的堆内存大小
export maven_opts=-xmx1024m
2.生成eclipse工程,本步骤可选,但是建议进行。因为在eclipse中修改java工程代码比较方便。还是在mahout-distribution-0.5目录执行以下命令
mvn eclipse:eclipse
3.如果执行了第2步,请继续执行此步骤。在eclipse中导入mahout-distribution-0.5下的所有工程,这个就不详细介绍了。
4.修改mahout-taste-webapp工程的pom.xml,添加对mahout-examples的依赖
<dependency> <groupid>${project.groupid}</groupid> <artifactid>mahout-examples</artifactid> <version>0.5</version></dependency>
5.在mahout-taste-webapp工程的recommender.properties中添加
recommender.class=org.apache.mahout.cf.taste.example.grouplens.grouplensrecommender
6.从http://www.grouplens.org/node/73上下载数据文件,我下载的是1m ratings data set (.tar.gz)经过测试验证通过,其他数据文件请自行验证。解压以后将ratings.dat复制到mahout-taste-webapp工程的/org/apache/mahout/cf/taste/example/grouplens/下,至于为什么是这个路径?请大家去看这个类grouplensdatamodel。
7.现在准备工作基本完成了,cd到taste-web我们来运行一把
mvn jetty:run-war
8.访问一下http://localhost:8080/recommenderservlet?userid=1就能看到效果,这个servlet还支持其他参数请参看recommenderservlet的javadoc说明
现在可以开始mahout的机器学习之旅了。