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

 基于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/

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



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值