大数据之路【第十四篇】:数据挖掘--推荐算法(Mahout工具)
数据挖掘---推荐算法(Mahout工具)
一、简介
- Apache顶级项目(2010.4)
- Hadoop上的开源机器学习库
- 可伸缩扩展的
- Java库
- 推荐引擎(协同过滤)、聚类和分类

二、机器学习介绍
- 通常问题都归为这几类问题
- 分类问题
- 回归问题
- 聚类问题
- 推荐问题
三、安装方法
3.1 下载Mahout
wget http://archive.apache.org/dist/mahout/0.9/mahout-distribution-0.9.tar.gz
3.2 解压
tar -zxvf mahout-distribution-0.9.tar.gz
四、配置环境变量
4.1 配置mahout环境变量
# set mahout environment
export MAHOUT_HOME=/usr/local/src/mahout-distribution-0.9
export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH
4.2 配置Mahout所需的Hadoop环境变量
# set hadoop environment
export HADOOP_HOME=/usr/local/src/hadoop-1.2.1
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME_WARN_SUPPRESS=not_null
五、验证是否成功
直接执行mahout命令
支持算法列表

六、准备数据
数据格式:
1,100001,5
1,100002,3
1,100003,4
1,100004,3
1,100005,3
1,100007,4
1,100008,1
1,100009,5
1,1000011,2
七、训练
INPUT="/movie_lens.data"
TMP_DIR="/mahout_temp"
OUTPUT="/cf_mahout_output"
MAHOUT_CMD="/usr/local/src/mahout-distribution-0.9/bin/mahout“
$MAHOUT_CMD itemsimilarity
-i $INPUT
-o $OUTPUT
--maxSimilaritiesPerItem 1000
--threshold 0.0000001
--similarityClassname SIMILARITY_COSINE
--tempDir $TMP_DIR

八、输出结果

大数据之路【第十四篇】:数据挖掘--推荐算法(Mahout工具)的更多相关文章
- Python之路【第二十四篇】Python算法排序一
什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. ...
- 大数据笔记(二十四)——Scala面向对象编程实例
===================== Scala语言的面向对象编程 ======================== 一.面向对象的基本概念:把数据和操作数据的方法放到一起,作为一个整体(类 c ...
- Python之路(第二十四篇) 面向对象初级:多态、封装
一.多态 多态 多态:一类事物有多种形态,同一种事物的多种形态,动物分为鸡类,猪类.狗类 例子 import abc class H2o(metaclass=abc.ABCMeta): def _ ...
- Python之路(第十四篇)os模块
一.os模块 1.os.getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) import os print(os.getcwd()) 2.os.chdir(path) 改变 ...
- Vue学习之路第十四篇:v-for指令中key的使用注意事项
1.学前准备: JavaScript中有一个方法:unshift() ,其作用是向数组的开头添加一个或更多元素,并返回新的长度.该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新 ...
- 大数据之路week07--day05 (一个基于Hadoop的数据仓库建模工具之一 HIve)
什么是Hive? 我来一个短而精悍的总结(面试常问) 1:hive是基于hadoop的数据仓库建模工具之一(后面还有TEZ,Spark). 2:hive可以使用类sql方言,对存储在hdfs上的数据进 ...
- Python之路【第十四篇】:AngularJS --暂无内容-待更新
Python之路[第十四篇]:AngularJS --暂无内容-待更新
- 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)
解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...
- Spring Cloud第十四篇 | Api网关Zuul
本文是Spring Cloud专栏的第十四篇文章,了解前十三篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring C ...
随机推荐
- ex3
#include <stdio.h> int main() { char ch; printf("please input:\n"); scanf("%c&q ...
- SpringBoot之AOP使用
说到SpringBoot,难免会想到Spring.对于Spring,我曾用其开发过很多大大小小的项目.当使用SpringBoot之后,给人最直观的感受,用古人一句话:”大道至简”. SpringBoo ...
- js传对象处理
JSON.stringify(carlist); 需要先将对象进行处理:如果服务端解析异常,可以先将这个值单独解析一次
- setns 切换命名空间,/proc 目录与 Namespace
http://man7.org/linux/man-pages/man2/setns.2.html int setns(int fd, int nstype); Given a file descri ...
- 关于 ElementUI 通知组件 notification 重叠问题的解决方案
转载链接:https://blog.csdn.net/csdn_yudong/article/details/101271214 ElementUI 通知组件(notification) 多个时会重叠 ...
- Spring注解驱动第三讲--@Filter介绍
上一讲主要针对@ComponentScan注解做了一些说明,本文主要对@Filter的扫描条件,再做一些详细的介绍 1,FilterType.ANNOTATION 按照注解的方式进行扫描.后面clas ...
- Mesa: GeoReplicated, Near RealTime, Scalable Data Warehousing
Mesa的定义并没有反映出他的特点,因为分布式,副本,高可用,他都是依赖google的其他基础设施完成的 他最大的特点是,和传统数仓比,可以做到near real-time的返回聚合的查询结果 算入实 ...
- Win7下msys64安装mingw工具链
1. 安装msys64 安装到指定目录, 例如C:\msys64 2. 命令行更新 运行msys2.exe打开命令行窗口, 执行命令 pacman -Syuu 3. 修改安装源 进入msys64/et ...
- 两个字符串对比提升比较性能用 StringComparison.OrdinalIgnoreCase
如果用string.ToLower() 或者 string.ToUpper()字符串在进行大小写转换时会消耗额外的性能 用这个比较性能更好 StringPwd1.Equals(Md5(PassWord ...
- 使用evenlet包实现 concurrent.futures.executor包的鸭子类
适配成同一个同样的公有方法. # -*- coding: utf-8 -*- # @Author : ydf # @Time : 2019/7/3 10:35 import time import w ...