mahout入门指南之基于mahout的itembased算法
2014-12-22 23:20
316 查看
基于mahout的itembased算法
其实mahout分布式上只是实现了部分算法。比如推荐算法中Item-based和slopone都有hadoop实现和单机版实现,User-based没有分布式实现。
Mahout已实现的算法(单机版和分布式版)
https://mahout.apache.org/users/basics/algorithms.html
大多数情况下,我们只是调用mahout的算法,要么单机版,要么分布式版。
那么mahout的分布式算法怎么调用呢?
其实mahout分布式算法调用有两种方式,
一种是命令行提交hadoop任务,
一种是java程序提交hadoop任务。
1 命令行方式
./mahout recommenditembased -sSIMILARITY_LOGLIKELIHOOD -i /home/linger/j2ee-workspace/linger/data/dataset.csv-o /home/linger/j2ee-workspace/linger/data/out.csv --numRecommendations 3
可以参考官方文档
http://mahout.apache.org/users/recommender/intro-itembased-hadoop.html
2 java程序调用其实就是先把数据拷贝到hdfs,然后在hadoop中做运算。
可以参考这篇文章
http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/
PS:mahout有个坑,就是uid和itemid必须为long型。
可以参考下面这篇文章解决
mahout做推荐时uid,pid为string类型
http://blog.csdn.net/pan12jian/article/details/38703569
看到这里,大家应该会觉得,对于mahout已实现算法,调用是很简单的。
欲更近一层楼,必须学会源码分析和源码修改,最后还要学会基于map-reduce实现分布式算法。
学会源码分析和源码修改,是为了更好地使用mahout,因为有时需要根据自己的特定需求来做调整,甚至优化。
学会基于map-reduce实现分布式算法,是因为有些算法mahout并没有实现,所以要自己开发。
本文链接:http://blog.csdn.net/lingerlanlan/article/details/42087071
本文作者:linger
其实mahout分布式上只是实现了部分算法。比如推荐算法中Item-based和slopone都有hadoop实现和单机版实现,User-based没有分布式实现。
Mahout已实现的算法(单机版和分布式版)
https://mahout.apache.org/users/basics/algorithms.html
大多数情况下,我们只是调用mahout的算法,要么单机版,要么分布式版。
那么mahout的分布式算法怎么调用呢?
其实mahout分布式算法调用有两种方式,
一种是命令行提交hadoop任务,
一种是java程序提交hadoop任务。
1 命令行方式
./mahout recommenditembased -sSIMILARITY_LOGLIKELIHOOD -i /home/linger/j2ee-workspace/linger/data/dataset.csv-o /home/linger/j2ee-workspace/linger/data/out.csv --numRecommendations 3
可以参考官方文档
http://mahout.apache.org/users/recommender/intro-itembased-hadoop.html
2 java程序调用其实就是先把数据拷贝到hdfs,然后在hadoop中做运算。
可以参考这篇文章
http://blog.fens.me/hadoop-mahout-mapreduce-itemcf/
Mahout分步式程序开发基于物品的协同过滤ItemCF
PS:mahout有个坑,就是uid和itemid必须为long型。
可以参考下面这篇文章解决
mahout做推荐时uid,pid为string类型
http://blog.csdn.net/pan12jian/article/details/38703569
看到这里,大家应该会觉得,对于mahout已实现算法,调用是很简单的。
欲更近一层楼,必须学会源码分析和源码修改,最后还要学会基于map-reduce实现分布式算法。
学会源码分析和源码修改,是为了更好地使用mahout,因为有时需要根据自己的特定需求来做调整,甚至优化。
学会基于map-reduce实现分布式算法,是因为有些算法mahout并没有实现,所以要自己开发。
本文链接:http://blog.csdn.net/lingerlanlan/article/details/42087071
本文作者:linger
相关文章推荐
- mahout入门指南之基于mahout的itembased算法
- mahout学习(三)--基于reuters数据的聚类分析入门
- 基于STM32F769I-DISCO开发板实现Embedded Wizard界面应用入门指南
- mahout入门指南之mahout单机版推荐算法
- Activiti5基于jBPM4的开源工作流系统10分钟入门指南
- mahout入门实例-基于 Apache Mahout 构建社会化推荐引擎-实战(参考IBM)
- 一个基于Stage3D API的2D框架:Starling Framework(附入门指南一本)
- mahout入门之编写第一个基于用户的推荐程序
- 一个基于Stage3D API的2D框架:Starling Framework(附入门指南一本)
- mahout入门指南
- Maven入门指南(基于Linux)
- 8-基于OMAPL138开发板的Linux应用程序开发入门指南
- 博客入门指南和Blog软件平台测试
- Symbian入门指南-接触篇
- java 移动开发入门指南
- Rational XDE Developer for Java 入门指南
- eclipse入门指南
- 期货市场入门指南
- Emacs入门指南(3)
- XML DOM 入门指南