mahout入门指南之基于mahout的itembased算法

 基于mahout的itembased算法html

 

事实上mahout分布式上仅仅是实现了部分算法。比方推荐算法中Item-based和slopone都有hadoop实现和单机版实现,User-based没有分布式实现。java

 

Mahout已实现的算法(单机版和分布式版)算法

https://mahout.apache.org/users/basics/algorithms.htmlapache

 

 

大多数状况下,咱们仅仅是调用mahout的算法,要么单机版,要么分布式版。分布式

那么mahout的分布式算法怎么调用呢?oop

 

事实上mahout分布式算法调用有两种方式,优化

一种是命令行提交hadoop任务,ui

一种是java程序提交hadoop任务。spa

 

1 命令行方式.net

./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已实现算法,调用是很是easy的。

欲更近一层楼,必须学会源代码分析和源代码改动,最后还要学会基于map-reduce实现分布式算法。

学会源代码分析和源代码改动,是为了更好地使用mahout,因为有时需要依据本身的特定需求来作调整,甚至优化。

学会基于map-reduce实现分布式算法,是因为有些算法mahout并无实现,因此要本身开发。


本文连接:http://blog.csdn.net/lingerlanlan/article/details/42087071

本文做者:linger

相关文章
相关标签/搜索