如果要实现Taste算法,必备的条件是:

1) JDK,使用1.6版本。需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量。

2) Maven,使用2.0.11版本或以上。在eclipse上安装maven插件—m2eclipse。

3)Apache Mahout,使用0.5版本。

Apache Mahout -Taste Documentation中的安装步骤:

[javascript] view plaincopy
  1. 4. Demo
  2. To build and run the demo, follow the instructions below, which are written for Unix-like
  3. operating systems:
  4. 1. Obtain a copy of the Mahout distribution, either from SVN or as a downloaded archive.
  5. 2. Download the "1 Million MovieLens Dataset" from http://www.grouplens.org/.
  6. 3. Unpack the archive and copy movies.dat and ratings.dat to
  7. trunk/taste-web/src/main/resources/org/apache/mahout/cf/taste/example/
  8. under the Mahout distribution directory.
  9. 4. Navigate to the directory where you unpacked the Mahout distribution, and navigate
  10. totrunk.
  11. 5. Runmvn install, which builds and installs Mahout core to your local repository
  12. 6. cd taste-web
  13. 7. cp ../examples/target/grouplens.jar ./lib
  14. 8. Edit recommender.properties and fill in therecommender.class:
  15. recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLe
  16. 9. mvn package
  17. 10.mvn jetty:run-war. You may need to give Maven more memory: in a bash shell,
  18. export MAVEN_OPTS=-Xmx1024M
  19. 11.Get recommendations by accessing the web application in your browser:
  20. http://localhost:8080/RecommenderServlet?userID=1
  21. This will produce a simple preference-item ID list which could be consumed by a client
  22. application. Get more useful human-readable output with the debug parameter:
  23. http://localhost:8080/RecommenderServlet?userID=1&debug=true
  24. Incidentally, Taste's web service interface may then be found at:
  25. http://localhost:8080/RecommenderService.jws
  26. Its WSDL file will be here...
  27. http://localhost:8080/RecommenderService.jws?wsdl
  28. ... and you can even access it in your browser via a simple HTTP request:
  29. .../RecommenderService.jws?method=recommend&userID=1&howMany=10

一、在window上安装maven


现在Java新架构的不断出现,例如Struts,Spring,Hibernate等,项目的配置文件的增多,给开发人员带来很大麻烦。在实际的开发当中,Myeclipse中的project越来越庞大,所依赖的第三方Jar包越来越多,这显得Project很臃肿,给项目管理带来了很大不便,尤其是在一些大型项目。为了解决上述问题,Apache开源组织发布了Maven,它适用于大的Java项目。

有关maven介绍见《Maven权威指南》 ,下载地址:http://www.juvenxu.com/mvn-def-guide/

安装步骤:

1、下载包,见http://maven.apache.org/download.html

2、解压缩,将其中的bin目录设置到windows Path环境变量中,maven也是依赖jdk的,先装好jdk,在环境变量里面配置好jdk。

2.1、设置JAVA_HOME(顾名其意该变量的含义就是java的安装路径),找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“.;%JAVA_HOME%\bin”,

2.2、新建变量名:M2_HOME,变量值:E:\maven\apache-maven-2.2.1,注意这里不含bin的路径。2、在path后追加;%M2_HOME%\bin,注意这里到bin目录

3、测试安装是否成功:开始->运行->cmd->mvn -version

注意:当提示mvn提示不是内部命令或外部命令,是因为在设置环境变量path的时候,可能覆盖了原先设置着的变量,只要在path后面添加变量:%SystemRoot%\system32;

4、在eclipse中安装maven插件 http://she.iteye.com/blog/1217812、http://www.cnblogs.com/freeliver54/archive/2011/09/07/2169527.html

5、使用links管理eclipse插件 http://blog.csdn.net/cfyme/article/details/6099056/

二、在windows上构建Apache Mahout环境

Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可下免费使用。该项目已经发展到了它的最二个年头,目前只有一个公共发行版。Mahout 包含许多实现,包括集群、分类、CP 和进化程序。

详细内容见:

1、Apache Mahout 简介http://www.ibm.com/developerworks/cn/java/j-mahout/

2、Maven 2.0:编译、测试、部署、运行http://www.ideagrace.com/html/doc/2006/06/14/00847.html

开始构建:

1、基于 Apache Mahout 构建社会化推荐引擎http://www.ibm.com/developerworks/cn/java/j-lo-mahout/

本文是由此篇文章引申而来,所以具体就是实现了“Taste的安装于简单的Demo实现”。

2、使用mvn搭建Mahout环境  http://anqiang1900.blog.163.com/blog/static/1141888642010380255296/

简单来说就是将Mahout源码从官网上下载下来后,在dos下切换到根文件夹后执行mvn install。

3、在Eclipse中构建Mahout  http://www.cnblogs.com/dlts26/archive/2011/09/13/2174889.html

就是将Mahout源码导入Eclipse从而形成Maven工程。再在mahout文件夹下执行maven install(如果上一步没做这个的话)。

三、运行Apache Mahout中的Taste Webapp例子

Taste 是 Apache Mahout 提供的一个协同过滤算法的高效实现,它是一个基于 Java 实现的可扩展的,高效的推荐引擎。

1.修改mahout-taste-webapp工程的pom.xml,添加对mahout-examples的依赖 
<dependency>  
    <groupId>${project.groupId}</groupId>  
    <artifactId>mahout-examples</artifactId>  
    <version>0.5</version>  
</dependency>  
2.在mahout-taste-webapp工程的recommender.properties中添加 
recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender  
3.从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。 
4.现在准备工作基本完成了,cd到taste-web我们来运行一把 
mvn jetty:run-war  
5.访问一下http://localhost:8080/RecommenderServlet?userID=1就能看到效果,这个servlet还支持其他参数请参看RecommenderServlet的javadoc说明

详细内容见http://seanhe.iteye.com/blog/1124682

四、遇到的问题

1、在Eclipse中配置Maven时遇到的问题

启动eclipse的时候会提示warning:找不到jdk啥的,解决办法:
在eclipse.ini文件中加入如下两行(vm指向javaw.exe的位置,或者直接到bin那里也可以):
-vm
D:\Development\Java\jdk1.5.0_16\bin\javaw.exe(注意这两行加到-startup与-launcher.library之间)

2、在windows上构建mahout环境时出现的问题:

2.1 在mahout目录下,运行"mvn install"时,遇到以下错误

Cannot run program "chmod": CreateProcess error=2

chmod是linux命令,此错误是由于 Cygwin + Hadoop 跑在 Windows 上出现的。

也就是说如果当前在windows下进行mahout编译,一定要确保正确安装了Cygwin(按照下面的教程装上Cygwin便可,后面hadoop的配置可以不用全部完成!)

这里用几个比较好的教材,讲解如何在windows下安装Hadoop Cluster(

http://ebiquity.umbc.edu/Tutorials/Hadoop/00%20-%20Intro.html

http://hayesdavis.net/2008/06/14/running-hadoop-on-windows/)

下载 hadoop-0.19.1在   http://archive.apache.org/dist/hadoop/core/hadoop-0.19.1/

2.2在Cygwin中运行命令ssh localhost连接不成功时出现Connection closed by ::1错误

Cygwin,耗时近xxxx个小时,查遍中文外文文献,终于将此题目解决。问题描述:在Win7下Cygwin中,使用sshlocalhost命令, 出现Connectionclosedby127.0.0.1的问题。解决方案:1、开端——运行——services.msc2、右键 CYGWINsshd——属性——登录选项卡——选择“此账户”——浏览——高级——立即查找——选择你的账户名(必须为治理员权限)——输进密码(必须 要有,空密码不承受,且和电脑登录密码相同)——确定。3、重启CYGWINsshd效劳即可。这样就以你的账户的名义启动了这个效劳。而后sshlocalhost成功。这样 做的一个缺点可能是你要给电脑设个密码

详见:http://blog.sina.com.cn/s/blog_4abbf0ae0100r8hh.html

3、运行Taste Webapp时遇到的问题

在Eclipse中配置好mahout后,就可以在mahout中运行taste-webapp算法了。

文中1,2步骤由于前面已经配置好,就直接从第3步开始配置mahout-taste-webapp中的内容。

出现的问题:

在浏览器栏输入http://localhost:8080/RecommenderServlet?userID=1后出现错误:

HTTP ERROR: 404

Problem accessing /RecommenderServlet. Reason:

Not Found

Powered by Jetty://

仔细查看第7步mvn jetty:run-war时,发现其中出现错误:

WARN::FAILED taste-recommender: java.lang.OutOfMemoryError: Java heap space

表明出现maven工程内存溢出。

解决办法:

Windows环境中

在Maven安装目录中找到文件%M2_HOME%\bin\mvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为:

@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...

它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行:
set MAVEN_OPTS=-Xmx1024M

或者,在执行mvn jetty:run-war命令之前,执行
F:\mahout-distribution-0.5\taste-web>set MAVEN_OPTS=-Xmx1024M

我们看到,配置的Maven选项生效了,OutOfMemoryError也能得以相应的解决。

windows下使用mahout|Taste实现协同过滤算法相关推荐

  1. win7下使用Taste实现协同过滤算法

    如果要实现Taste算法,必备的条件是: 1) JDK,使用1.6版本.需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量. 2) Maven,使用2 ...

  2. Apache Mahout基于商品的协同过滤算法流程分析

    最近使用mahout的itemBase协同过滤算法,研究了下他的源码,记录如下,以备后忘-- 其算法实现大致分四个主要的部分: 1.将输入数据转化成矩阵 2.计算相似性 3.还是转化数据格式,为计算预 ...

  3. python协同过滤算法_协同过滤算法介绍及算法实现

    一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...

  4. 协同过滤算法介绍及算法实现

    一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...

  5. 协同过滤算法_基于Mahout的协同过滤推荐算法

    1协同过滤 基于物品的协同过滤 对物品进行相似度计算,然后再进行推荐. 基于用户的协同过滤 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢,并对这些喜好进行度量和打分.根据不 ...

  6. 02 机器学习算法库Mahout - 协同过滤算法实现推荐功能

     (原文地址:http://blog.csdn.net/codemosi/article/category/2777041,转载麻烦带上原文地址.hadoop hive hbase mahout ...

  7. 推荐系统中协同过滤算法实现分析

    原创博客,欢迎转载,转载请注明:http://my.oschina.net/BreathL/blog/62519 最近研究Mahout比较多,特别是里面协同过滤算法:于是把协同过滤算法的这个实现思路与 ...

  8. 个性化智能推荐(协同过滤算法)技术研究

    个性化智能推荐(协同过滤算法)技术研究 一.  协同过滤推荐(Collaborative Filtering简称 CF)        协同过滤技术是目前推荐系统中最成功和应用最广泛的技术,在理论研究 ...

  9. 推荐系统-协同过滤算法简介简化版实例

    必须先忏悔一下太久没记录学习轨迹,最近感觉脑子里一团浆糊,搞得自己非常难受,自信心也是被严重摧毁.训斥自己必须要保持记录的习惯,因为这不仅是对知识的整理,更让你知道其实你知道的很多! 因为刚结束了一个 ...

  10. springboot采用协同过滤算法的视频推荐系统的设计与实现毕业设计源码261620

    摘  要 现阶段,社会的发展和科技的进步,以及大数据时代下纷繁数据信息的融合,使得人们在生产及生活过程中,都将会接收到各种类型的数据信息,而通过计算机技术与网络技术,则能够将众多人们所不了解或不常用的 ...

最新文章

  1. 在Ubuntu18.04下的Cmake使用记录
  2. 第十六届全国大学生智能汽车竞赛(西部赛区) 竞速组成绩及获奖情况公示
  3. php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
  4. 暑假爆零欢乐赛SRM08题解
  5. VMProtect SDK完全避坑指南
  6. first-软件工程
  7. 洛谷 - P2756 飞行员配对方案问题(二分图最大匹配+路径打印)
  8. RHEL 6.6安装桌面环境GNOME
  9. 本人的博客只是工作期间随手记录的笔记而已,所以不会很详尽,由此给您带来的不便,恳请多多包涵~...
  10. 剑指offer之和为s的数组
  11. 移动端键盘弹起导致底部按钮上浮解决方案
  12. CentOS hadoop 分布式集群的搭建
  13. 联想键盘F1-F12的切换
  14. 腾讯云账户注销操作教程
  15. 资产证券化:国际借鉴与中国实践案例 读后感
  16. TP、FP、TN、FN傻傻分不清楚
  17. 计算机 显卡 淘汰,早该淘汰的VGA模拟接口:新显卡不再支持
  18. 【分享】“抖店“在集简云平台集成应用的常见问题与解决方案
  19. SpringBoot在线教育项目(十一)
  20. 考研日记----9.08-----中秋快乐

热门文章

  1. js中数组(Array)的排序(sort)注意事项
  2. 2020项目商机_营销“心”思维,赢得“新”商机 ——2020年第二期军师项目顺利落幕...
  3. Qos拥塞避免原理与实验
  4. ELK详解(二十)——Elasticsearch索引管理
  5. MySQL主从同步(三)——M-S-S架构配置实战
  6. Vue+axios+Node+express实现文件上传(用户头像上传)
  7. 网站banner图片制作(简易版)
  8. 【X240 QQ视频对方听不到声音】解决方法
  9. webapp开发技术选型
  10. RHEL-用户基础-管道