mahout是一个工具
一个来自Apache的、开源的、JAVA的机器学习软件库
当所处理的数据规模远大于单机处理能力时成为一种可选的机 器学习工具,建立在Apache的Hadoop分布式计算项目之上
mahout安装:
1,上传apache-mahout-distribution-0.12.2.tar.gz包到linux服务器(hdfs集群的一个节点安装就行)
2,解压tar -zxvf apache-mahout-distribution-0.12.2.tar.gz
3,上传测试数据包
synthetic_control.data到服务器
4,启动hadoop集群
测试:
1,查看hdfs集群上/user/root这个文件夹有没有,没有就创建
hadoop fs -mkdir /user/root
2,上传本地的数据文件到hdfs:
hadoop fs -copyFromLocal /opt/local/synthetic_control.data testdata
testdata 是相对路径的意思,当前用户目录下,也就是hdfs的/user/root下的testdata
3,进入apache-mahout-distribution-0.12.2目录下运行测试jar:
hadoop jar mahout-examples-0.12.2-job.jar org.apache.mahout.clustering.syntheticcontrol.canopy.Job
4,
程序分别运行了3个Job任务,最后把原始数据分为六类。在HDFS文件系统中/user/root/output文件夹中可以看到输出的文件
5,把数据拷贝到linux本地:./bin/mahout clusterdump -i output/clusters-0-final -p output/clusteredPoints -o test.txt
-i是输入文件路径,即运行Canopy算法产生的中心点文件路径(HDFS文件系统);
-p是运行Canopy算法后把原始数据分类后的数据文件目录(HDFS文件系统);
-o是分类结果的所有文本文件要生成的文件路径(本地文件系统)。
协同过滤是推荐系统中使用的技术
简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推 荐使用者感兴趣的资讯
协同过滤Mahout:
基于用户的协同过滤:
简单讲就是,给用户推荐和他兴趣相似的其他用户喜欢的物品
1.收集用户资料
2.最近邻搜索找到相似用户
3.计算产生推荐结果
(以使用者为基础的协同推荐算法随着使用者数量的增多,计算 的时间就会变长 社交网络站点中,UserCF是一个不错的选择)
基于物品的协同过滤:
简单讲就是,给用户推荐和他之前喜欢的物品相似的物品
1.收集用户资料
2.针对物品的最近邻搜索找到相似物品
3.计算产生推荐结果
(是目前电子商务采用最广泛的推荐算法)
Mahout协同过滤算法(SIMILARITY_LOGLIKELIHOOD ):
1,进入apache-mahout-distribution-0.12.2目录下
2,上传本地的数据文件到hdfs:
hadoop fs -copyFromLocal /opt/local/user.txt input/file 意思是文件上传到当期用户目录下的input/file目录
3,./bin/mahout recommenditembased -s
SIMILARITY_LOGLIKELIHOOD -i input/file -o output/file --numRecommendations 25 读取文件按协同过滤算法计算,结果输出到当前用户目录下output/file
4,查看结果数据hadoop fs -cat /user/root/output/file/part-r-00000