基于Mahout的电影推荐系统

源代码下载地址:

参考资料:

QQ:66781877

1 Mahout介绍

Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚类、分类、协同过滤、进化编程等等,并且,在 Mahout 中还加入了对Apache Hadoop的支持,使这些算法可以更高效的运行在云计算环境中。

2环境部署2.1JDK1.6.0_21的安装jdk的下载地址:我所用的版本是jdk-6u21-linux-i586.bin。安装步骤:1.打开终端,,进入放置jdk安装文件的目录cd /home/huhui/develop

2.更改文件权限为可执行chmod +x jdk-6u21-linux-i586.bin

3.执行该文件,执行命令./jdk-6u21-linux-i586.bin

JDK自动安装到/home/huhui/develop/jdk1.6.0_21目录下。这个目录下,在终端输入java -version可以看到jdk的版本信息:

4.安装完JDK之后,接下来需要配置环境变量,在终端中输入命令sudo gedit /etc/profile,此时会弹出如下对话框:

在这个文档的末尾加入如下信息:#set java environmentJAVA_HOME=/home/huhui/develop/jdk1.6.0_21export JRE_HOME=/home/huhui/develop/jdk1.6.0_21/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH保存并关闭文件,至此,jdk的安装与配置就完成了。2.2MySQL的安装

MySQL的安装过程比较简单,在终端输入sudo apt-get install mysql-server my-client即可:

到这里,要求用户输入Y或者N,此时选择Y,会弹出一个界面,要求输入mysql的root的密码,这里一定输入,省得安装后再设密码了。

我习惯与使用可视化工具来操作MySQL数据库,于是我又安装了“MySQL Administrator”软件,这个是数据库管理软件,运行如下图所示:

2.3Tomcat的安装软件下载地址: 我下载的版本是apache-tomcat-6.0.35.tar.gz1.解压文件复制安装文件到hom/huhui/develop目录下,在终端输入sudo tar -zxvf apache-tomcat-6.0.35.tar.gz,将安装包解压至apache-tomcat-6.0.35目录下2.配置startup.sh文件在终端输入sudo gedit home/huhui/develop/apache-tomcat-6.0.35/bin/startup.sh在startup.sh文件的末尾加入一下内容,加入的内容即为jdk的环境变量:JAVA_HOME=/home/huhui/develop/jdk1.6.0_21PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarTOMCAT_HOME=/home/huhui/develop/apache-tomcat-6.0.353.启动tomcat

进入/usr/local/apache-tomcat-6.0.35/bin/目录,输入sudo ./startup.sh,若出现下图信息,则说明tomcat安装成功。

此时在浏览器中输入:8080/将出现tomcat的欢迎界面。2.4Mahout安装1.Mahout可以从下载,我下载的版本是mahout-0.3.tar.gz2.将下载下来的压缩文件解压缩,将lib文件夹下的jar文件全部拷贝出,为以后的工作做准备。doc目录下的mahout-core文件夹下是mahout的API,供开发时查阅。2.5MyEclipse8.0安装MyEclipse的安装简单,基本和windows下安装一样,此处不再赘述。MyEclipse安装完成之后,将前面安装好的tomcat关联到MyEclipse下。

至此,已经完成了对环境的部署,下面进入开发阶段。

3工程开发3.1推荐引擎简介推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类:基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。3.2Taste简介

Taste 是 Apache Mahout 提供的一个协同过滤算法的高效实现,它是一个基于 Java 实现的可扩展的,高效的推荐引擎。Taste 既实现了最基本的基于用户的和基于内容的推荐算法,同时也提供了扩展接口,使用户可以方便的定义和实现自己的推荐算法。同时,Taste 不仅仅只适用于 Java 应用程序,它可以作为内部服务器的一个组件以 HTTP 和 Web Service 的形式向外界提供推荐的逻辑。

3.3Taste工作原理Taste 由以下五个主要的组件组成:

我们什么都没有,唯一的本钱就是青春。

基于Mahout的电影推荐系统

相关文章:

你感兴趣的文章:

标签云: