当前课程知识点:互联网大规模数据分析技术 >  第八章 推荐系统 >  第23讲 Mahout数据挖掘平台 >  第23讲 Mahout数据挖掘平台

返回《互联网大规模数据分析技术》慕课在线视频课程列表

第23讲 Mahout数据挖掘平台在线视频

下一节:第24讲 信息过滤评价体系

返回《互联网大规模数据分析技术》慕课在线视频列表

第23讲 Mahout数据挖掘平台课程教案、知识点、字幕

欢迎来到

互联网大规模数据分析技术

的课堂

我是今天的主讲教师李琳

来自武汉理工大学

今天我们开始第23讲

Mahout数据挖掘平台

在今天的内容当中

我们会介绍什么是Mahout

有哪些常用的数据分析工具

Mahout的发展历史

最后

我们会以K-means聚类算法为例

给大家讲解一下Mahout平台上

如何使用聚类算法

什么是Mahout呢

Mahout中文意思是象夫

看象人

那么Mahout也是我们Apache

这样一个开源的项目

在数据分析这样一个金字塔当中

我们看一下数据分析所处的位置

在数据分析当中

我们可以采用数据挖掘技术

来帮助我们进行数据的分析

从而对我们的决策进行支持

在这里面

我们首先要了解数据从哪里来

存在什么地方

进行查询之后

我们怎么来做数据挖掘

达到这样一个数据决策分析的

这样一个过程

在数据分析当中

主流的是一些统计的方法

有目的的对收集的数据

进行分析处理并解读分析的结果

传统的统计有哪些方法呢

比如说求中均值、中位值、方差

偏差、峰值这样一些指标

同时我们还有一些算法

在这样一个图当中

大家可以看到比较熟悉的

回归分析、贝叶斯网络

逻辑回归、神经网络、决策

K-means聚类等

各种各样的机器学习算法

在这里

我们举一个回归分析的例子

回归分析是要做什么呢

也就是说数据分析当中的

机器学习算法

主要完成一些什么样的事情呢

在第一张图上面

我们看到分布了很多的点

我们想做的事情

请用一个函数来描述这些点

当我给定一个新的x值的时候

你能告诉我它的y值是多少呢

这种情况下我们需要找一条

能够拟合

尽可能拟合大部分数据的直线

在这个直线当中

我们学习得到这个直线

这个直线一般写成ax+b,对吧

ax表示斜率,b代表截距

当我们如果知道了a

知道了b之后

当有一个新的点到来的时候

我能够通过这个方法

算得一个y值

那么这个y就是我的预测

这是回归分析

也就是说

我通过对历史数据的建模

什么是模型呢

这样一个线性的关系

就是我们所学的数学模型

建立好模型之后

当新的数据到来的时候呢

你可以通过这个模型

计算出你预测的值是多少

这就是我们机器学习当中的

基于训练数据的回归分析

同时基于这样一种思想

我们还能够进行分类

前面讲的回归分析能够预测

具体的数值

在这里面的分析主要是预测类别

这个在前面的数据挖掘课当中

我们的老师

都给大家做了一个简要的介绍

在这里我们仍然看一个例子

比如说

我们有天气晴、热、高、无风

我们用一个N来表示它的类别

我们用雨、冷、正常、无风

代表p这样一个类别

也就是说

这些属性能够决定最终输出的类别

我们能不能根据已有的历史数据

我们也可以把它叫做训练数据

来预测分析一下

当我给你一条新的数据的时候

你能不能告诉我

这个类别是P还是N

在这里

我们前面学习过决策树的方法

对不对

我们可以用这种决策树的方式

来一步步的进行推导

从而判别它究竟是P还是N

这是分类

接下来

还有一类主流的数据分析方法

前面的我们的课程当中

也给大家介绍过叫聚类

这里我们简单的回忆一下

聚类分析是将物理的

或者抽象的数据集合

划分为多个类别的过程

聚类之后的每个类别中

任意两个数据样本之间

具有较高的相似度

而不同类别的样本之间

具有较低的相似度

我们的聚类算法有层次聚类算法

有基于密度的聚类算法

有基于划分式的

这样一些聚类算法

聚类的主要目的是形成类别

不同的类聚集到一起

这一个类里面的数据

它特别的相近

这一个类里面的数据它很相近

但是类和类之间

它们之间的数据的相似度

并不是那么高

这就是我们在数据分析

和数据挖掘当中常用到的

分类聚类统计分析这样一些方法

同时在前面的课程当中

我们还学习了关联分析对不对

我们学习了

关联规则频繁向量机的挖掘

我们知道了啤酒与纸尿裤

这样一个故事

这些大量的数据挖掘和分析的

一些算法

都已经有了一些开源的实现

这个是购物车和啤酒纸尿裤的

这样一个例子

这样一些数据分析工具有哪些呢

我们传统的数据库

也能做数据分析

我们有一些可视化的工具

我们还有一些

能够数据分析的商用的软件

这些都构成了

我们数据分析的工具

我们对常用的

传统数据分析工具做了一个排行

大家可以看到

基于统计的各种数据分析工具

仍然我们的主流

在这里我们看到非常熟悉的

Matlab

数据挖掘的Weka、SPSS、R、SAS

这些排在前面的

都是我们主流的分析工具

其中R是开源的

R、SAS和SPSS的典型应用场景

均为实验室

处理数据受限于内存

无法处理海量数据

而Oracle这样的数据管理系统

能够处理海量数据

但是在分析方面的却略有不足

它们可以采用抽样的方法

来解决数据分析的问题

所以

当遇到大规模数据分析的时候

我们仍然希望

要有这样一个分布式的计算平台

也就是前面我跟大家介绍的

Hadoop、Spark

基于MapReduce的

这样一些并行计算

如何把这些并行计算

和数据分析的一些工具

能够结合起来供大家使用呢

Mahout就解决了这样一类问题

在Mahout当中我们解决了

一些算法的MapReduce

也就是解决了一些算法的

MapReduce的一些编程问题

比如说我们常见的clustering

它的K-means这样一种方法

我们在Mahout当中

就实现了它的分布式

比如说在分类问题当中

我们的贝叶斯和KNN也实现了

在我们的信息检索当中

前面我们用了几节课的时间

跟大家讲了倒排索引

大家会发现它非常适合

MapReduce的编程模式

所以我们叫perfect fits

我们常见的一些算法都实现了

MapReduce化

这样一些算法

有的是非常适合MapReduce的

一步就能够完成

有的可以通过多次的

MapReduce的工作来达到并行化

当然有的问题可能目前还没有

很好的MapReduce化的解决方案

比如说传统的支持向量机

和隐马尔科夫链

前面我们已经看到

不少的数据分析和机器学习算法

已经能够实现MapReduce

并行化的编程

Mahout它是怎么来的呢

它作为Lucene的一个子项目

前面我们介绍了Lucene

这样一个信息检索平台

这样一个信息检索它存在大量的

文本数据分析和挖掘的需求

比如说文本的自动分类

和文本重复性的判断

导致Lucene项目中的

部分开者转向了机器学习领域

最终将这些机器学习算法

形成的最初的Mahout

同时Mahout也被吸收到了

开源项目当中

2010年成为Apache的顶级项目

Mahout主要目的是

实现可伸缩的机器学习算法

也就是算法的MapReduce化

但是也不一定要求

是基于Hadoop平台的

你也可以选择非分布式的算法

目标是帮助开发人员快速的建立

具有机器智能的应用程序

目前比较成熟和活跃的算法

主要包括频繁模式挖掘

聚类算法、分类算法

推荐系统和频繁子项挖掘

大家可以在Mahout的主页上面

获取更多的关于算法的信息

接下来我们就用K-means的聚类

做一个Mahout的实例的演示

在这里我们的K-means

首先要选取K个初始中心点

并把这每个对象

分配给离它最近的中心

这是一个map的过程

然后计算出当前每个距离中心

作为新的距离中心

这是一个reduce的过程

将这样一个MapReduce的过程

不断地去执行

直到聚类的情况不再变化为止

所以我们等会儿的例子

将会以文本聚类为例

文本聚类就是要把

一个文档集合当中的文本

分成不同的类别

这些文档聚类的应用在哪里呢

比如说

我们可以用在搜索引擎上面

对结果进行聚类

把相类似的结果放到一起

便于用户快速的定位信息

同时

也可以做文档集合的自动整理

我们来看一下

文本聚类的具体过程

首先我们要有数据

我们要对这样一些文档

进行聚类的话

首先我们要对文档进行预处理

这个预处理就包括分词

和一些简单的停用词的去除

同时我们要建立一些信息特征

构造特征空间

实际上在这个里面

我们用的最多的就是

在信息检索课当中所学的

向量空间模型

当我们得到

这样的向量空间模型之后

我们就按照Mahout

所提供的聚类算法的接口

将这样一个格式

送入到我们的聚类算法当中去

最后会形成输出

所以实际上

当你要使用Mahout平台

来做文本聚类的时候

你关键的工作在于数据的表示

怎么把文档表示成文档向量

实际上在信息检索课当中

我们已经知道了向量空间模型

Vector?Space?Model

在这样一个模型当中

每一个单词都有一个权重

这个权重可以是

你在这个文档当中出现的次数

也可以是我们学过的TF-IDF

这样的话通过TF-IDF

或者其他方式的权重计算

我们就能获得这样一个

向量空间模型

当有了向量空间模型之后

我们的聚类算法

需要算两点之间的相似度

你们相似或者距离很近

我就把你们俩放到一起

所以在相似度

或者是距离的计算当中

我们的Mahout提供了很多种

距离和相似度的计算指标

比如说欧氏距离

比如说平方欧氏距离

比如说曼哈顿距离

绝对值、平方、开根号

我们还可以有前面所学的点积

这样一个余弦距离

我们还有谷本距离测度

所以呢,Mahout当中提供了

多种多样的距离计算函数

同学们会问

老师,那我用哪个距离函数

去做文本聚类分析呢

这个要你根据具体的数据

去进行测试

没有一个统一的标准

接下来我们用这两张图

来给大家演示一下

K-means聚类的过程

在K-mmeans聚类当中

首先我们要选择K个聚类中心

在这个例子当中

我选择三个聚类中心

在图上大家可以看到C1、C2、C3

随机的,在Map阶段

在每个点付给离其最近的簇

怎么来做呢

我们需要算距离

这个点和这个中心点的距离

这个点和这个中心点的距离

所有的点

和任意三个点的中心距离

把和我相离比较近的中心点

与我放到一起

这样的话我们初步的形成了

这样的三个簇

在Reduce阶段我们做什么呢

Reduce阶段

我们要取相互关联的点的均值

作为新的聚类中心

前面我们已经计算到了

C1、C2、C3,随机取的

现在我们把这些点

放到这里面之后

我们重新求一个聚类中心

变成了这样

我们会发现聚类中心有了变化

从一个位置到了另外一个位置

我下一次再做一次Reduce

这个聚类中心点又会发生变化

每轮迭代之后

最终的布局

将反馈给同样的循环过程

直到我们的聚类中心的位置

不再移动

也就是说等到下一次迭代的时候

如果我算的C1还是前一次的C1

那么ok我们可以不动了

这就是整个MapReduce当中的

K-means聚类算法的使用

在Mahout当中

我们怎么来用这个K-means

很简单

在Linux环境下

你们输入这样一些命令

当然你要告诉K-means

你用的是TFIDF的向量空间模型

你用的是哪一个数据集

你的数据的聚类中心

最开始的开始的K取多少个

这些都需要你在开始的时候

进行一些预设

当你完成之后

Mahout的聚类分析

就会开始运行了

你有数据已经生成的向量

并且把向量写在相应的目录当中

并且告诉我初始的中心点是哪些

Mahout的聚类就开始工作

算完之后,它会把结果输出

但是大家不要希望Mahout

给大家输出非常漂亮的

可视化结果

Mahout输出的结果

将会以这样一些工具

来帮助大家完成

那么最终它会得到什么样的呢

像这样一种格式

大家要去分析一下

比如说聚类1当中有哪些文件

聚类2当中有哪些文件

聚类4当中有哪些文件

前面我们的参数大家注意一下

我们是设了十三个聚类

所以在这里

如果你们想获取比较漂亮的

这样一个输出的话

还要对这样一些数据

做一些可视化操作

这就是这一讲的主要内容

感谢同学们的观看

互联网大规模数据分析技术课程列表:

第一章 大数据与数据挖掘概述

-第1讲 大数据与数据挖掘概述

--第1讲 大数据与数据挖掘概述

第二章 关联规则

-第2讲 频繁项集和关联规则的基本概念

--第2讲 频繁项集和关联规则的基本概念

-第3讲 Apriori算法

--第3讲 Apriori算法

-第4讲 Apriori算法的改进与兴趣度度量

--第4讲 Apriori算法的改进与兴趣度度量

第三章 分类算法

-第5讲 分类的基本概念

--第5讲 分类的基本概念

-第6讲 决策树

--第6讲 决策树

-第7讲 简单贝叶斯分类

--第7讲 简单贝叶斯分类

第四章 聚类算法

-第8讲 聚类的基本概念

--第8讲 聚类的基本概念

-第9讲 K-Means & K-Medoids Clustering

--第9讲 K-Means & K-Medoids Clustering

-第四章 聚类算法--习题

第五章 大数据平台与技术

-第10讲 大数据处理平台Hadoop

--第10讲 大数据处理平台Hadoop

-第11讲 MapReduce编程

--第11讲 MapReduce编程

-第12讲 大数据处理平台Spark

--第12讲 大数据处理平台Spark

-第13讲 NoSQL数据库

--第13讲 NoSQL数据库

第六章 信息检索

-第14讲 Web信息检索简介

--第14讲 Web信息检索简介

-第15讲 信息检索之倒排索引

--第15讲 信息检索之倒排索引

-第16讲 信息检索之TFIDF

--Video

-第17讲 信息检索之相似度排序

--第16讲 信息检索之TFIDF

第七章 Web链接分析

-第18讲 Web搜索之链接分析

--第18讲 Web搜索之链接分析

-第19讲 Web搜索之PageRank

--第19讲 Web搜索之PageRank

-第20讲 Lucene信息检索平台

--第20讲 Lucene信息检索平台

-第七章 Web链接分析--习题

第八章 推荐系统

-第21讲 推荐系统简介

--第21讲 推荐系统简介

-第22讲 推荐系统之协同过滤

--第22讲 推荐系统之协同过滤

-第23讲 Mahout数据挖掘平台

--第23讲 Mahout数据挖掘平台

-第24讲 信息过滤评价体系

--第24讲 信息过滤评价体系

-第八章 推荐系统--习题一

-第八章 推荐系统--习题二

自我提升练习

-综合编程题

第23讲 Mahout数据挖掘平台笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。