mahout学习-1
一. 安装软件
需要安装如下文件:
java, Eclipse, Maven,Hadoop,mahout
二. 推荐系统简介
每天,我们都会对一些事物表达自己的看法,喜欢,或不喜欢,或不在乎。这些都在无意识地发生。当你从电台听到一首歌曲的时候,要么会注意到它(因为它好听或它难听),要么完全不会注意它。对其他事物也是如此,像T-shirt, 色拉,发型,电视节目等等。
尽管人们的品味不同,但是他们都遵从某种模式,人们若喜欢某件事物,若现在有另一个事物与起相似,那么人们对该事物也会表现喜欢的态度。因为我喜欢bacon-lettuce-and-tomato三明治,所以你可以猜测我也喜欢club三明治,因为这两种三明治很相似。
相应的,人们倾向于喜欢与其喜欢相似事物的其他人所喜欢的事物。
我们可以使用这些模式来预测喜欢或不喜欢。当我们放一个陌生人在你面前的时候,当问你他是否喜欢指环王III时,你没有其他办法,只能猜测,但是,若他告诉我们他喜欢指环王I和指环王II时,那么若他不喜欢指环王III的话,你会很震惊。
推荐即是预测这些品味模式,然后使用这些模式来发现你所不知道的新的或想要的事物。
前面提到过,我们可以从和我们品味相似的人那里来发现我们喜欢的事物,另一方面,我们可以寻找与已经喜欢的事物相似的事物。这两种类型是推荐引擎算法中最广泛的类别:
“基于用户”的推荐和“基于事件”的推荐
以下介绍一个推荐系统实例,主要用来mahout工程在Eclipse下建立以及运行
1.首先,准备好输入的数据。在本实例中,保存在文件intro.csv中。
1,101,5.0
1,102,3.0
1,103,2.5 2,101,2.0
2,102,2.5
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
其中,第一列是:User ID, 第二列是:Item ID, 第三列是:Preference Value
2.创建一个推荐系统工程,输入如下代码:
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*; import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;
import java.io.*;
import java.util.*; public class RecommenderIntro {
public static void main(String[] args) throws Exception{
DataModel model = new FileDataModel(new File("intro.csv"));
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender(
model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(1, 1); for(RecommendedItem recommendation : recommendations){
System.out.println(recommendation); }
} }
DataModel model = new FileDataModel(new File("intro.csv"));
该句表示加载数据文件
Recommender recommender = new GenericUserBasedRecommender(
model, neighborhood, similarity);
表示创建推荐引擎
List<RecommendedItem> recommendations = recommender.recommend(1, 1);
表示对于用户1,推荐1件物品
3.运行结果
2013-7-31 21:43:18 org.slf4j.impl.JCLLoggerAdapter info
信息: Creating FileDataModel for file intro.csv
2013-7-31 21:43:19 org.slf4j.impl.JCLLoggerAdapter info
信息: Reading file info...
2013-7-31 21:43:19 org.slf4j.impl.JCLLoggerAdapter info
信息: Read lines: 21
2013-7-31 21:43:19 org.slf4j.impl.JCLLoggerAdapter info
信息: Processed 5 users
RecommendedItem[item:104, value:4.257081]
若把
List<RecommendedItem> recommendations = recommender.recommend(1, 1);
改为:
List<RecommendedItem> recommendations = recommender.recommend(1, 2);
表示向用户1推荐2件物品
输出结果如下:
2013-7-31 21:55:13 org.slf4j.impl.JCLLoggerAdapter info
信息: Creating FileDataModel for file intro.csv
2013-7-31 21:55:14 org.slf4j.impl.JCLLoggerAdapter info
信息: Reading file info...
2013-7-31 21:55:14 org.slf4j.impl.JCLLoggerAdapter info
信息: Read lines: 21
2013-7-31 21:55:14 org.slf4j.impl.JCLLoggerAdapter info
信息: Processed 5 users
RecommendedItem[item:104, value:4.257081]
RecommendedItem[item:106, value:4.0]
注:
在把mahout的工程文件导入Eclipse时,可能会出现错误,具体错误忘了记下来了,我的解决方法是:
把Windows ——> Preferences ——>Maven ——> User Setting 设置为Maven安装的文件位置。如下图所示
mahout学习-1的更多相关文章
- 转】Mahout学习路线图
原博文出自于: http://blog.fens.me/hadoop-mahout-roadmap/ 感谢! Mahout学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目 ...
- mahout第一篇-----Mahout学习路线图
Mahout学习路线图 前言 Mahout是Hadoop家族中与众不同的一个成员,是基于一个Hadoop的机器学习和数据挖掘的分布式计算框架.Mahout是一个跨学科产品,同时也是我认为Hadoop家 ...
- Mahout学习路线图
转自:http://blog.fens.me/hadoop-mahout-roadmap/ Mahout学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, ...
- Mahout学习路线图-张丹老师
前言 Mahout是Hadoop家族中与众不同的一个成员,是基于一个Hadoop的机器学习和数据挖掘的分布式计算框架.Mahout是一个跨学科产品,同时也是我认为Hadoop家族中,最有竞争力,最难掌 ...
- Hadoop里的数据挖掘应用-Mahout——学习笔记<三>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X的笔记 由于平时对数据挖掘做的比较多,所以优先看Mahout方向视频. Mahout有很好的扩展性与容错性(基于H ...
- Mahout学习之Mahout简介、安装、配置、入门程序测试
一.Mahout简介 查了Mahout的中文意思——驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个 ...
- Mahout学习之Mahout简单介绍、安装、配置、入门程序測试
一.Mahout简单介绍 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的 ...
- mahout学习
参考:http://www.360doc.com/content/14/0117/09/1200324_345883534.shtml Precondition: 启动Hadoop集群 bin/hdf ...
- Mahout学习资料
Apache Mahout 简介 http://www.ibm.com/developerworks/cn/java/j-mahout/ 从源代码剖析Mahout推荐引擎 http://blog.fe ...
随机推荐
- WordPress网站更换老鹰主机详细操作
眼看着之前买的虚拟主机就要到期了,本着节约至上的美德,就和同事一起买了老鹰主机.因为第一次网站的配置是一个朋友帮忙的,所以现在想完全自己动手操作,毕竟之后的博客维护还是得靠自己.下面就来和我一起学习怎 ...
- Ansible好像很好玩的样子哟
这个比SALTSTACK轻量,,不知道速度如何..... 参考文档: http://linux.cn/article-4215-1.html wget http://download.fedorapr ...
- Chapter 6 — Improving ASP.NET Performance
https://msdn.microsoft.com/en-us/library/ff647787.aspx Retired Content This content is outdated and ...
- -_-#【Angular】工具函数
AngularJS学习笔记 上下文绑定 var f = angular.bind({a: 'xx'}, function() { console.log(this.a) }) f() // 'xx' ...
- Android子线程更新主界面
学习什么的还是要真正的有应用,有需求才能在最短的时间里面牢牢掌握一项技术. 今天就是这样的,产品一个需求下来,十万火急啊.然后之前只稍稍接触过,只能硬着头皮上了.最后牢牢地掌握了最简单的Handler ...
- Spark SQL Table Join(Python)
示例 Spark SQL注册“临时表”执行“Join”(Inner Join.Left Outer Join.Right Outer Join.Full Outer Join) 代码 fr ...
- mklink命令转移win7系统盘文件夹users和programdata(附xp的方法)
mklink命令转移win7系统盘文件夹users和programdata(附xp的方法) 使用mklink命令转移文件夹清理臃肿的c盘 (一) 我的 ...
- 计算机语言的发展(the history of computer's language)
第一部分 计算机语言的分类: 机器语言:直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码.例如:1011011000000000,表示加法.可以直接执行. 汇编语言:汇编指令集.伪指 ...
- 查看Wii的系统版本信息
Wii的系统版本信息在系统设置界面就能看到: Step1:主界面 > Wii Options Step2:选择右边的Wii Settings Step3:如下图所示,当前主机的系统版本是4.2U ...
- Java学习日记-3 Character和字符串
(先说几个小问题 1.在main方法中调用主类的其他方法时,必须先生成主类的对象 2.String s = new String("Hello") 生成了两个对象 3.熟用布尔+f ...