• 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已实现算法,调用是非常easy的。

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

    学会源代码分析和源代码改动,是为了更好地使用mahout,由于有时须要依据自己的特定需求来做调整,甚至优化。

    学会基于map-reduce实现分布式算法,是由于有些算法mahout并没有实现,所以要自己开发。


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

    本文作者:linger



  • 相关阅读:
    事件
    dom对象
    逻辑运算和作用域的问题
    json
    数组
    字符串
    函数
    js的数据类型和全局方法
    js
    10.16 js内容
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4222279.html
Copyright © 2020-2023  润新知