专栏首页华章科技4种基本聚类算法应如何正确选择?这份攻略值得你收藏

4种基本聚类算法应如何正确选择?这份攻略值得你收藏

导读:本文将介绍4种基本的聚类算法——层次聚类、基于质心的聚类、最大期望算法和基于密度的聚类算法,并讨论不同算法的优缺点。

作者:Josh Thompson

翻译:张睿毅

来源:数据派THU(ID:DatapiTHU)

聚类算法十分容易上手,但是选择恰当的聚类算法并不是一件容易的事。

数据聚类是搭建一个正确数据模型的重要步骤。数据分析应当根据数据的共同点整理信息。然而主要问题是,什么通用性参数可以给出最佳结果,以及什么才能称为“最佳”。

本文适用于菜鸟数据科学家或想提升聚类算法能力的专家。下文包括最广泛使用的聚类算法及其概况。根据每种方法的特殊性,本文针对其应用提出了建议。

4种基本算法以及如何选择?

聚类模型可以分为四种常见的算法类别。尽管零零散散的聚类算法不少于100种,但是其中大部分的流行程度以及应用领域相对有限。

01 基于连通性的聚类(connectivity-based)

基于整个数据集对象间距离计算的聚类方法,称为基于连通性的聚类(connectivity-based)或层次聚类。根据算法的“方向”,它可以组合或反过来分解信息——聚集和分解的名称正是源于这种方向的区别。最流行和合理的类型是聚集型,你可以从输入所有数据开始,然后将这些数据点组合成越来越大的簇,直到达到极限。

层次聚类的一个典型案例是植物的分类。数据集的“树”从具体物种开始,以一些植物王国结束,每个植物王国都由更小的簇组成(门、类、阶等)。

层次聚类算法将返回树状图数据,该树状图展示了信息的结构,而不是集群上的具体分类。这样的特点既有好处,也有一些问题:算法会变得很复杂,且不适用于几乎没有层次的数据集。这种算法的性能也较差:由于存在大量的迭代,因此整个处理过程浪费了很多不必要的时间。最重要的是,这种分层算法并不能得到精确的结构。

同时,从预设的类别一直分解到所有的数据点,类别的个数不会对最终结果产生实质性影响,也不会影响预设的距离度量,该距离度量粗略测量和近似估计得到的。

02 质心的聚类(Centroid-based)

根据我的经验,由于简单易操作,基于质心的聚类(Centroid-based)是最常出现的模型。 该模型旨在将数据集的每个对象划分为特定的类别。 簇数(k)是随机选择的,这可能是该方法的最大问题。 由于与k最近邻居(kNN)相似,该k均值算法在机器学习中特别受欢迎。

附链接:

https://www.kaggle.com/chavesfm/tuning-parameters-for-k-nearest-neighbors-iris

计算过程包括多个步骤。首先,输入数据集的目标类别数。聚类的中心应当尽可能分散,这有助于提高结果的准确性。

其次,该算法找到数据集的每个对象与每个聚类中心之间的距离。最小坐标距离(若使用图形表示)确定了将对象移动到哪个群集。

之后,将根据类别中所有点的坐标平均值重新计算聚类的中心。重复算法的上一步,但是计算中要使用簇的新中心点。除非达到某些条件,否则此类迭代将继续。例如,当簇的中心距上次迭代没有移动或移动不明显时,聚类将结束。

尽管数学和代码都很简单,但k均值仍有一些缺点,因此我们无法在所有情景中使用它。缺点包括:

  • 因为优先级设置在集群的中心,而不是边界,所以每个集群的边界容易被疏忽。
  • 无法创建数据集结构,其对象可以按等量的方式分类到多个群集中。
  • 需要猜测最佳类别数(k),或者需要进行初步计算以指定此量规。

03 高斯混合模型(GMM)

相比之下,期望最大化算法可以避免那些复杂情况,同时提供更高的准确性。简而言之,它计算每个数据集点与我们指定的所有聚类的关联概率。用于该聚类模型的主要工具是高斯混合模型(GMM)——假设数据集的点服从高斯分布。

链接:

https://www.encyclopedia.com/science-and-technology/mathematics/mathematics/normal-distribution#3

k-means算法可以算是EM原理的简化版本。它们都需要手动输入簇数,这是此类方法要面对的主要问题。除此之外,计算原理(对于GMM或k均值)很简单:簇的近似范围是在每次新迭代中逐渐更新的。

与基于质心的模型不同,EM算法允许对两个或多个聚类的点进行分类——它仅展示每个事件的可能性,你可以使用该事件进行进一步的分析。更重要的是,每个聚类的边界组成了不同度量的椭球体。这与k均值聚类不同,k均值聚类方法用圆形表示。

但是,该算法对于不服从高斯分布的数据集根本不起作用。这也是该方法的主要缺点:它更适用于理论问题,而不是实际的测量或观察。

04 基于数据密度的聚类

最后,基于数据密度的聚类成为数据科学家心中的最爱。

链接:

http://www.mastersindatascience.org/careers/data-scientist/

这个名字已经包括了模型的要点——将数据集划分为聚类,计数器会输入ε参数,即“邻居”距离。因此,如果目标点位于半径为ε的圆(球)内,则它属于该集群。

具有噪声的基于密度的聚类方法(DBSCAN)将逐步检查每个对象,将其状态更改为“已查看”,将其划分到具体的类别或噪声中,直到最终处理整个数据集。用DBSCAN确定的簇可以具有任意形状,因此非常精确。此外,该算法无需人为地设定簇数 —— 算法可以自动决定。

尽管如此,DBSCAN也有一些缺点。如果数据集由可变密度簇组成,则该方法的结果较差;如果对象的位置太近,并且无法轻易估算出ε参数,那么这也不是一个很好的选择。

总而言之,我们并不能说选择了错误的算法,只能说其中有些算法会更适合特定的数据集结构。为了采用最佳的(看起来更恰当的)算法,你需要全面了解它们的优缺点。

例如,如果某些算法不符合数据集规范,则可以从一开始就将其排除在外。为避免繁琐的工作,你可以花一些时间来记住这些信息,而无需反复试验并从自己的错误中学习。

我们希望本文能帮助你在初始阶段选择最好的算法。继续这了不起的工作吧!

原文标题:

Choosing the Right Clustering Algorithm for your Dataset

原文链接:

https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html

本文分享自微信公众号 - 大数据(hzdashuju),作者:Josh Thompson

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你是合格的机器学习数据科学家吗?来挑战这40题吧!(附解答)

    目前机器学习是最抢手的技能之一。如果你是一名数据科学家,那就需要对机器学习很擅长,而不只是三脚猫的功夫。作为 DataFest 2017 的一部分,Analyt...

    华章科技
  • 如何真正学好数据科学?

    作为一个全新的领域,数据科学的飞速发展让人激动。数据科学在带来巨大经济效益的同时,人们在数据科学技术方面的知识沟也逐渐出现,这意味着更多的人需要试图了解和学习数...

    华章科技
  • 对比近10000个Python开源项目,我们精选出最实用的34个

    导读:踏着人工智能、区块链的东风,近年来一路“横冲直撞”的 Python 在实现了从小众语言到主流的完美转身后,进入 2019 依旧没有透出丝毫停下来的架势,反...

    华章科技
  • 【独家】一文读懂聚类算法

    1. 聚类的基本概念 1.1 定义 聚类是数据挖掘中的概念,就是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能...

    数据派THU
  • 【机器学习】聚类算法总结

    聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算...

    陆勤_数据人网
  • 量化投资里的无监督学习算法:聚类

    公众号第一次介绍Marcos Lopez de Prado,则是来自他一篇论文:《The 7 Reasons Most Machine Learning Fun...

    量化投资与机器学习微信公众号
  • 【 文智背后的奥秘 】系列篇 :文本聚类系统

    通过文本聚类的自动化流程,文本聚类用户可以挖掘出数据中的热门话题或热门事件,从而为用户对数据的分析提供重要的基础。本文下面先对文本聚类的主要算法作介绍,然后再具...

    文智
  • 识辨 | 什么是分类?什么是聚类?

    大数据文摘
  • 集成聚类系列(一):基础聚类算法简介

    在机器学习中,一个重要的任务就是需要定量化描述数据中的集聚现象。聚类分析也是模式识别和数据挖掘领域一个极富有挑战性的研究方向。

    磐创AI
  • 【算法】聚类算法

    小编邀请您,先思考: 1 有哪些算法可以聚类?各自有什么特点? 2 聚类算法的效果如何评价? 1 定义 聚类是数据挖掘中的概念,就是按照某个特定标准(如距离)把...

    陆勤_数据人网

扫码关注云+社区

领取腾讯云代金券