windows下使用mahout|Taste实现协同过滤算法
如果要实现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中的安装步骤:
- 4. Demo
- To build and run the demo, follow the instructions below, which are written for Unix-like
- operating systems:
- 1. Obtain a copy of the Mahout distribution, either from SVN or as a downloaded archive.
- 2. Download the "1 Million MovieLens Dataset" from http://www.grouplens.org/.
- 3. Unpack the archive and copy movies.dat and ratings.dat to
- trunk/taste-web/src/main/resources/org/apache/mahout/cf/taste/example/
- under the Mahout distribution directory.
- 4. Navigate to the directory where you unpacked the Mahout distribution, and navigate
- totrunk.
- 5. Runmvn install, which builds and installs Mahout core to your local repository
- 6. cd taste-web
- 7. cp ../examples/target/grouplens.jar ./lib
- 8. Edit recommender.properties and fill in therecommender.class:
- recommender.class=org.apache.mahout.cf.taste.example.grouplens.GroupLe
- 9. mvn package
- 10.mvn jetty:run-war. You may need to give Maven more memory: in a bash shell,
- export MAVEN_OPTS=-Xmx1024M
- 11.Get recommendations by accessing the web application in your browser:
- http://localhost:8080/RecommenderServlet?userID=1
- This will produce a simple preference-item ID list which could be consumed by a client
- application. Get more useful human-readable output with the debug parameter:
- http://localhost:8080/RecommenderServlet?userID=1&debug=true
- Incidentally, Taste's web service interface may then be found at:
- http://localhost:8080/RecommenderService.jws
- Its WSDL file will be here...
- http://localhost:8080/RecommenderService.jws?wsdl
- ... and you can even access it in your browser via a simple HTTP request:
- .../RecommenderService.jws?method=recommend&userID=1&howMany=10
一、在window上安装maven
有关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.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;
5、使用links管理eclipse插件 http://blog.csdn.net/cfyme/article/details/6099056/
二、在windows上构建Apache Mahout环境
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 实现的可扩展的,高效的推荐引擎。
详细内容见http://seanhe.iteye.com/blog/1124682
四、遇到的问题
1、在Eclipse中配置Maven时遇到的问题
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错误
详见: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:
仔细查看第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实现协同过滤算法相关推荐
- win7下使用Taste实现协同过滤算法
如果要实现Taste算法,必备的条件是: 1) JDK,使用1.6版本.需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量. 2) Maven,使用2 ...
- Apache Mahout基于商品的协同过滤算法流程分析
最近使用mahout的itemBase协同过滤算法,研究了下他的源码,记录如下,以备后忘-- 其算法实现大致分四个主要的部分: 1.将输入数据转化成矩阵 2.计算相似性 3.还是转化数据格式,为计算预 ...
- python协同过滤算法_协同过滤算法介绍及算法实现
一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...
- 协同过滤算法介绍及算法实现
一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...
- 协同过滤算法_基于Mahout的协同过滤推荐算法
1协同过滤 基于物品的协同过滤 对物品进行相似度计算,然后再进行推荐. 基于用户的协同过滤 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢,并对这些喜好进行度量和打分.根据不 ...
- 02 机器学习算法库Mahout - 协同过滤算法实现推荐功能
(原文地址:http://blog.csdn.net/codemosi/article/category/2777041,转载麻烦带上原文地址.hadoop hive hbase mahout ...
- 推荐系统中协同过滤算法实现分析
原创博客,欢迎转载,转载请注明:http://my.oschina.net/BreathL/blog/62519 最近研究Mahout比较多,特别是里面协同过滤算法:于是把协同过滤算法的这个实现思路与 ...
- 个性化智能推荐(协同过滤算法)技术研究
个性化智能推荐(协同过滤算法)技术研究 一. 协同过滤推荐(Collaborative Filtering简称 CF) 协同过滤技术是目前推荐系统中最成功和应用最广泛的技术,在理论研究 ...
- 推荐系统-协同过滤算法简介简化版实例
必须先忏悔一下太久没记录学习轨迹,最近感觉脑子里一团浆糊,搞得自己非常难受,自信心也是被严重摧毁.训斥自己必须要保持记录的习惯,因为这不仅是对知识的整理,更让你知道其实你知道的很多! 因为刚结束了一个 ...
- springboot采用协同过滤算法的视频推荐系统的设计与实现毕业设计源码261620
摘 要 现阶段,社会的发展和科技的进步,以及大数据时代下纷繁数据信息的融合,使得人们在生产及生活过程中,都将会接收到各种类型的数据信息,而通过计算机技术与网络技术,则能够将众多人们所不了解或不常用的 ...
最新文章
- 在Ubuntu18.04下的Cmake使用记录
- 第十六届全国大学生智能汽车竞赛(西部赛区) 竞速组成绩及获奖情况公示
- php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
- 暑假爆零欢乐赛SRM08题解
- VMProtect SDK完全避坑指南
- first-软件工程
- 洛谷 - P2756 飞行员配对方案问题(二分图最大匹配+路径打印)
- RHEL 6.6安装桌面环境GNOME
- 本人的博客只是工作期间随手记录的笔记而已,所以不会很详尽,由此给您带来的不便,恳请多多包涵~...
- 剑指offer之和为s的数组
- 移动端键盘弹起导致底部按钮上浮解决方案
- CentOS hadoop 分布式集群的搭建
- 联想键盘F1-F12的切换
- 腾讯云账户注销操作教程
- 资产证券化:国际借鉴与中国实践案例 读后感
- TP、FP、TN、FN傻傻分不清楚
- 计算机 显卡 淘汰,早该淘汰的VGA模拟接口:新显卡不再支持
- 【分享】“抖店“在集简云平台集成应用的常见问题与解决方案
- SpringBoot在线教育项目(十一)
- 考研日记----9.08-----中秋快乐
热门文章
- js中数组(Array)的排序(sort)注意事项
- 2020项目商机_营销“心”思维,赢得“新”商机 ——2020年第二期军师项目顺利落幕...
- Qos拥塞避免原理与实验
- ELK详解(二十)——Elasticsearch索引管理
- MySQL主从同步(三)——M-S-S架构配置实战
- Vue+axios+Node+express实现文件上传(用户头像上传)
- 网站banner图片制作(简易版)
- 【X240 QQ视频对方听不到声音】解决方法
- webapp开发技术选型
- RHEL-用户基础-管道