Mahout介绍

发布 : 2016-01-20 分类 : 大数据 浏览 :

1.Mahout概述

1
2
3
4
5
6
7
8
9
Mahout是Apache software Foundation(ASF)旗下的一个开源项目

提供一些可拓展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷的创建只能应用程序

Mahout包含许多实现,包括聚类.分类.推荐过滤.频繁子项挖掘。此外,通过使用Apache Hadoop库。

Mahout可以有效地拓展到云中

当所处理的数据规模远大于单机处理能力时成为一种可选的机器学习工具,建立在Apache的Hadoop分布式计算项目之上

2.运行一个Mahout案例

1
2
3
4
5
1)运行Mahout自带的Kmeans算法,同时验证安装的Mahout是否能够正常运行。具体步骤如下:

2)准备测试数据。
下载文件synthetic control.data
(下载地址:http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data)并把这个文件放在$MAHOUT_HOME目录下synthetic_control.data文件中

机器学习

1
2
3
4
5
6
7
8
9
10
11
12
13
机器学习理论主要是设计和分析一些让计算机可以自动学习的算法。

机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法

监督学习

分类(做出单一决策)

推荐(选择许多可能,并对其进行排序)

无监督学习

聚类

Mahout单机推荐程序

1
2
3
4
5
6
7
8
9
M2eclipse插件
Mahout在印度语里面就是骑大象的人的意思


简单的基于用户的Mahout推荐程序
评估一个推荐程序
评估查准率与查全率
查准率(精度):top推荐中间有"好"结果的比例
查全率(召回率/record):"好"结果出现在top推荐中的比例

Mahout算法库

1
包括三大块(聚类.协同过滤.分类等算法)

聚类算法:

1
2
3
4
5
6
7
8
9
聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法

聚类(Cluster)分析是有若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点。

聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性

聚类的用途是很广泛的

例如:在商业上,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费者群体来,并且概括出每一类消费者的消费模式或者说习惯

分类算法:

1
2
3
4
5
6
7
8
9
分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),在根据标签来区分归类

分类是事先定义好类别,类别数不变

案例:

比如程序时区分大豆和绿豆的。我们输入的数据是比如颜色值.半径大小,属于黄豆还是绿豆等等(当然这个是个鸡蛋的例子)。

首先我们需要拿出一些"豆子"的数据给程序,并告诉它是黄豆还是绿豆,然后通过自己的算法,让程序"计算"区分两种东西的"边界条件",或者简单说就是提取特征(一般用的比较多的就是距离)。这就相当于训练/学习等概念

协同过滤

1
2
3
4
5
6
7
8
9
电子商务推荐系统的一种主要算法。如推荐系统

协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。

与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测

案例:

推荐系统,商品推荐和用户推荐

1
2
同现矩阵:本质:只是计算物品与物品之间相似度的计算方式
把用户对物品的评分0,变为可量化的数字

Kmeans介绍:

1
2
3
4
5
1.K-means算法是最早为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一

2.k-means算法的基本思想是:以空间中k个点为中心进行聚类对最靠近他们的对象归类

3.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果

Kmeans聚类


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
应用:

移动的套餐

##Canopy是什么?

是聚类算法的一种实现

Canopy聚类是一种简单.快速.但不太准确的聚类方法

Canopy Clustering是一种小而美的聚类方法,其算法流程如下:

1> 设样本集合为S,确定两个阀值t1和t2,且t1>t2

2> 任取一个样本点p属于S,作为一个Canopy,记为C,从S中移除p

3> 计算S中所有点到p的距离dist

4> 若dist<t1,则将相应点归到C

5> 若dist<t2,则将相应点移出S

6> 重复(2)~(5),直至S为空
本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/01/20/Mahout/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹