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

mahout入门指南之基于mahout的itembased算法的更多相关文章

  1. webpack入门指南(基于webpack v4.41.2)

    2019年12月5日初稿,目前webpack已经更新到v4.41.2,本文正是基于该版本,在windows8.1操作系统下进行的demo编译,适用于想入门webpack的前端开发人员. webpack ...

  2. Hash算法入门指南(聊点不一样的算法人生)

    前言 很多人到现在为止都总是问我算法该怎么学啊,数据结构好难啊怎么的,学习难度被莫名的夸大了,其实不然.对于一个学计算机相关专业的人都知道,数据结构是大学的一门必修课,数据结构与算法是基础,却常常容易 ...

  3. 基于Mahout的电影推荐系统

    基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...

  4. win7基于mahout推荐之用户相似度计算

    http://www.douban.com/note/319219518/?type=like win7基于mahout推荐之用户相似度计算 2013-12-03 09:19:11    事情回到半年 ...

  5. Hibernate 5 入门指南-基于映射文件

    由于Hibernate 4版本混乱,Hibernate 3有些过时,Hibernate 5的开发文档尚不完善,所以构建一份简单的Hibernate 5的入门指南 注:案例参考Hibernate 官方参 ...

  6. 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源

      机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题   在信息时代,公司和个人的成功越来越依赖于迅速 ...

  7. Vue.js 入门指南之“前传”(含sublime text 3 配置)

    题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...

  8. 【翻译】Fluent NHibernate介绍和入门指南

    英文原文地址:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started 翻译原文地址:http://www.cnblogs ...

  9. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

随机推荐

  1. Spark调度管理(读书笔记)

    Spark调度管理(读书笔记) 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark调度管理 本文主要介绍在单个任务内Spark的调度管理,Spark调度相关概念如 ...

  2. 一起来学习Android自定义控件1

    概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会 ...

  3. js身份证验证-超级准!!!

    function checkIdcard(idcard) { var Errors = new Array( "验证通过!", "身份证号码位数不对!", &q ...

  4. byte[]和InputStream的相互转换[转载]

    1:byte[]转换为InputStream InputStream sbs = new ByteArrayInputStream(byte[] buf); 2:InputStream转换为Input ...

  5. IDoc

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. 成功完成Moses Manual中BaseLineSystem

    终于把这个破法语句子翻译出来了,各种耗时,bug,弄了一天,明天争取看完详细的翻译教程! 而且还要学习中文分词,晚安,Moses!

  7. shell中的退出状态码

    shell中的退出状态码最大只有255,如果超过这个值,就会进行取余运算,即如果执行如下命令: exit exitCode 如果exitCode大于255,那么实际的状态码为exitCode % 25 ...

  8. Hadoop 中 最重要的两个模块

    Hadoop 中 最重要的两个模块 HDFS   分布式的文件系统 主节点: NameNode SecondaryNamenode ResourceManager 从节点: DataNode Node ...

  9. 【译】第一篇 SQL Server安全概述

    本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  10. day_7

    r 读w 写a 追加写 f = open('s.txt',mode='r',encoding='utf-8') ff = f.readline() #读取时一行一行的时候末尾会跟着\nprint(ff ...