Spark Mllib数据挖掘入门七——非监督分类 (聚类)

聚类是一种数据挖掘领域中常用的无监督学习算法,MLlib中聚类的算法目前有4种,其中最常用的是Kmeans算法,在文本分类中应用较为广泛。高斯混合聚类和隐狄利克雷聚类在特定场合有特定的使用。

1.聚类与分类

聚类与分类是数据挖掘中常用的两个概念,它们的算法和计算方式有所交叉和区别。一般来说分类是指有监督的学习,即要分类的样本是有标记的,类别是已知的;聚类是指无监督的学习,样本没有标记,根据某种相似度度量把样本聚为k类。
1)分类
分类是将事物按特征或某种规则划分成不同部分的一种归纳方式。在数据挖掘中,分类属于有监督学习的一种。
分类的应用很多,例如可以通过划分不同的类别对银行贷款进行审核,也可以根据以往的购买历史对客户进行区分,从而找出可称为VIP的用户。此外,在网络和计算机安全领域,分类技术有利于帮助检测入侵威胁,可以帮助安全人员更好地识别正常访问与入侵的区别。
回归与分类的区别在于其输出值的不同。一般情况下,分类的输出是离散化的一个数据类别,而回归输出的结果是一个连续值。
2)聚类
聚类,顾名思义就是把一组对象划分成若干类,并且每个类中对象之间的相似度较高,不同类中对象之间相似度较低或差异明显。聚类是无监督学习的一种。
聚类的目的是分析出相同特性的数据,或样本之间能够具有一定的相似性,即每个不同的数据或样本可以被一个统一的形式描述出来,而不同的聚类群体之间则没有此项特性。
聚类与分类的不同之处在于,聚类算法在工作前并不知道结果如何,不会知道最终将数据集或样本划分成多少个聚类集,每个聚类集之间的数据有何种规则。聚类的目的在于发现数据或样本属性之间的规律,可以通过何种函数关系式进行表示。

2.Kmeans算法

K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
Kmeans由于其算法设计的一些基本理念,在对数据处理时效率不高,MLlib充分利用了Spark框架的分布式计算的便捷性,从而提高了运算效率。
K-means基本思想和核心内容就是在算法开始时随机给定若干(K)个中心,按照最近距离原则将样本点分配到各个中心点,之后按平均法计算聚类集的中心点位置,从而重新确定新的中心点位置。这样不断地迭代下去直至聚类集内的样本满足阈值为止。

3.高斯混合聚类

高斯在历史上影响巨大,其一生最重要的一大贡献就是发现了高斯分布,这也是统计分析一书中最重要的部分,即正态分布。MLlib使用高斯分布对数据进行分析处理,主要用于对数据进行聚类处理。
我们通常所说的标准高斯分布是μ=0、σ=1的正态分布。高斯分布在应用上常用于图像处理、数据归纳和模式识别等方面,
在对图像噪声的提取、特征分布的鉴定等方面有重要的功能。以高斯分布为基础的单高斯分布聚类模型,其原理就是考察已有数据建立一个分布模型,之后通过带入样本数据计算其值是否在一个阈值范围之内
混合高斯模型是在单高斯模型的基础上发展起来的,主要是为了解决单高斯模型对混合的数据聚合不理想的情况。在样本数据已知的情况下,训练获得模型参数,进行极大似然估计。

4.快速迭代聚类

快速迭代聚类是谱聚类的一种。谱聚类是最近聚类研究的一个热点问题,是建立在图论理论上的一种新的聚类方法。快速迭代聚类的基本原理是使用含有权重的无向线将样本数据连接在一张无向图中,之后按相似度进行划分,使得划分后的子图内部具有最大的相似度而不同子图具有最小的相似度从而达到聚类的效果。
谱聚类基本原理就是利用计算得到的样本相似度,组成一个相似度矩阵进行聚类计算。

无监督学习指的是没有预先的定义和标记,由算法自行完成分类和聚合,是一种探索性的分析。聚类算法从本身的算法出发,自动探索并对数据进行处理,往往因为处理时间的不同和循环迭代的次数不同,以及方法的先后顺序从而得到不同的聚类结论。不同的工作人员对同一组数据进行处理,结果也不近相同。

你可能感兴趣的:(数据挖掘,数据挖掘)