k均值聚类算法优缺点_聚类(二):k-means、GMM与EM算法

e02abce16ce9c2a2b4f2ceca5fe2232b.png

上一篇聚类(一)中我们探究了度量相似性的不同方式,了解不同的相似性定义会引导我们得到不同的聚类结果,那么具体是怎么引导的,不同的相似性是怎么发挥作用的呢,这就是我们这里要探究的聚类算法。

聚类算法概览

其实如我们之前所说的,类或簇的定义与我们期望实现的任务目标有关,聚类算法也一样,聚类算法的不同不仅体现在迭代学习的过程的不同,同样体现在目标类或簇的形式的不同,分别来看的话常见的聚类算法有:

从迭代学习的过程来看的话,可以分为:

1. 层次聚类;进一步地看,又有自下而上和自上而下,其中前者最开始时每个样本自成一类,之后将最相似的两类合并称为一个新的类,重复直到满足停止条件,这里的停止条件可能是类的个数,也可能是相似性阈值等等,自上而下则相反,最开始时将所有样本都分为一类,迭代地将类拆分,直到满足类似的停止条件。层次聚类中合并类或拆分类一般是根据类间距离,类似Fisher LDA中所说的“类间间距最大”,衡量不同类之间的距离在不同的距离测度之上还有很多种应用方法,比如类间最短距离、最长距离、类中心距离、类平均距离。

2. 基于划分的聚类;简单说就是对于一堆待聚类的数据点,先确定最后期望聚成几类,然后挑选几个点作为初始中心点,根据预定的启发式的方法做迭代,直到达到我们的停止条件。在期望聚类数目确定、初始中心点的挑选、噪声和离群点处理,数值以及类别型数据处理方法、引入核方法等具体细节上的不同衍生出了不同的聚类算法,但是毫无疑问最起源的一个算法就是k-means算法,这也是我们这里将要详述的算法。

3. 基于密度的聚类;这个类型则是为了处理以密度为特征的类而设计的算法,最初始的算法为DBSCAN

4. 基于网格的聚类;这类算法将整个数据空间划分为网格单元,将数据对象集映射到网格单元中,然后计算每个单元的密度,将满足预设阈值的网格合并组成类。可想而知,这种方法虽然简单处理速度快,但对数据维数极为敏感,而且对网格大小阈值等参数也很敏感。

5. 基于模型的聚类;进一步地看,主要有基于概率模型的和基于神经网络的;前者主要是认为每一类数据属于一个概率分布,样本集合是由混合概率分布生成的,其中每一个数据点不再是一定属于某一类,而是以概率的形式来看,典型的就是高斯混合模型了,也是我们要详述的;后者指的就是自组织映射神经网络,我们稍后也会简要介绍。

回到我们之前说到的,不同的数据性质和任务决定了我们期望结果类或簇的形式,这些类或簇的形式也反过来影响我们聚类算法和距离与结果度量指标的选择,那么常见的类或簇的形式有哪些呢:

1. 以中心定义的簇:这类数据集合倾向于规则形的分布,具体的规则形状根据我们距离的度量方法不同而不同,比如最常用的欧氏距离则表现为球形,通常情况下中心即为质心,是该数据簇中所有点的平均值,该簇中的数据与中心的距离相比其他数据簇中心的距离要近,以此来表示类内更相似。

2. 以密度定义的数据簇:这类数据集合呈现出和周围数据簇明显不同的密度形式,或稠密或稀疏。它对数据形状不敏感,因此在处理不规则或相互缠绕等复杂情况,以及有噪声点和离群点的时候,比较适合基于密度的数据簇定义。

3. 以连通定义的数据簇:这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构。它同样对数据形状不敏感。

4. 以概念定义的数据簇:即根据目标任务定义某种性质,使得一个数据簇中的所有数据点都具有某种性质,从这个角度讲,连通也算是一种概念。

考虑目标任务和数据的多样性我们可以看出,没有一种算法能够适用于所有的数据类型、数据簇和应用,在给定的场景下,选择适合的相似性度量、数据簇定义、聚类算法和评价指标很重要。在这里我们仅探究几类基础性的聚类算法,针对特定场景下不同细节之处的修正和创新可以自然地引申出更多不同的聚类算法。

k-means

k-means是一种基于划分的聚类方法,步骤很清晰:选取初始中心点-启发式迭代-达到停止条件,其中在k-means中初始中心点的选择即是根据欲聚类的个数随机挑选,停止条件也很简单,即无法再继续迭代,所以了解k-means怎么做就在于它启发式的迭代方法,此外理解k-means的关键除了怎么做之外还在于它为什么可以这么做。

k-means启发式迭代方法

k-means适合的聚类数据我们刚才所说的以中心定义的簇,它通过欧式距离来衡量数据点之间的相似性,当然我们也可以参照原始k-means的方法把这里的距离度量方式换成我们熟悉的其它的闵可夫斯基距离或马氏距离等。它的出发点是将每一个数据点都分给距离它最近的数据簇,具体的做法是重复以下步骤:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值