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

相關文章
相關標籤/搜索