本文将介绍四种基本的聚类算法—层次聚类、基于质心的聚类、最大期望算法和基于密度的聚类算法,并讨论不同算法的优缺点。
聚类算法十分容易上手,但是选择恰当的聚类算法并不是一件容易的事。
数据聚类是搭建一个正确数据模型的重要步骤。 数据分析应当根据数据的共同点整理信息。 然而主要问题是,什么通用性参数可以给出最佳结果,以及什么才能称为“最佳”。 本文适用于菜鸟数据科学家或想提升聚类算法能力的专家。 下文包括最广泛使用的聚类算法及其概况。 根据每种方法的特殊性,本文针对其应用提出了建议。 四种基本算法以及如何选择 聚类模型可以分为四种常见的算法类别。 尽管零零散散的聚类算法不少于100种,但是其中大部分的流行程度以及应用领域相对有限。 基于整个数据集对象间距离计算的聚类方法,称为基于连通性的聚类(connectivity-based)或层次聚类。 根据算法的“方向”,它可以组合或反过来分解信息——聚集和分解的名称正是源于这种方向的区别。 最流行和合理的类型是聚集型,你可以从输入所有数据开始,然后将这些数据点组合成越来越大的簇,直到达到极限。 层次聚类的一个典型案例是植物的分类。 数据集的“树”从具体物种开始,以一些植物王国结束,每个植物王国都由更小的簇组成(门、类、阶等)。 层次聚类算法将返回树状图数据,该树状图展示了信息的结构,而不是集群上的具体分类。 这样的特点既有好处,也有一些问题: 算法会变得很复杂,且不适用于几乎没有层次的数据集。 这种算法的性能也较差: 由于存在大量的迭代,因此整个处理过程浪费了很多不必要的时间。 最重要的是,这种分层算法并不能得到精确的结构。 同时,从预设的类别一直分解到所有的数据点,类别的个数不会对最终结果产生实质性影响,也不会影响预设的距离度量,该距离度量粗略测量和近似估计得到的。 根据我的经验,由于简单易操作,基于质心的聚类(Centroid-based)是最常出现的模型。 该模型旨在将数据集的每个对象划分为特定的类别。 簇数(k)是随机选择的,这可能是该方法的最大问题。 由于与k最近邻居(kNN)相似,该k均值算法在机器学习中特别受欢迎。 (附链接: https://www.kaggle.com/chavesfm/tuning-parameters-for-k- nearest-neighbors-iris ) 计算过程包括多个步骤。 首先,输入数据集的目标类别数。 聚类的中心应当尽可能分散,这有助于提高结果的准确性。 其次,该算法找到数据集的每个对象与每个聚类中心之间的距离。 最小坐标距离(若使用图形表示)确定了将对象移动到哪个群集。 之后,将根据类别中所有点的坐标平均值重新计算聚类的中心。 重复算法的上一步,但是计算中要使用簇的新中心点。 除非达到某些条件,否则此类迭代将继续。 例如,当簇的中心距上次迭代没有移动或移动不明显时,聚类将结束。 尽管数学和代码都很简单,但k均值仍有一些缺点,因此我们无法在所有情景中使用它。 缺点包括:因为优先级设置在集群的中心,而不是边界,所以每个集群的边界容易被疏忽。
无法创建数据集结构,其对象可以按等量的方式分类到多个群集中。
需要猜测最佳类别数(k),或者需要进行初步计算以指定此量规。
原文标题:
Choosing the Right Clustering Algorithm for your Dataset
原文链接:
https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html
编辑:黄继彦
译者简介
张睿毅,北京邮电大学大二物联网在读。我是一个爱自由的人。在邮电大学读第一年书我就四处跑去蹭课,折腾整一年惊觉,与其在当下焦虑,不如在前辈中沉淀。于是在大二以来,坚持读书,不敢稍歇。资本主义国家的科学观不断刷新我的认知框架,同时因为出国考试很早出分,也更早地感受到自己才是那个一直被束缚着的人。太多真英雄在社会上各自闪耀着光芒。这才开始,立志终身向遇到的每一个人学习。做一个纯粹的计算机科学里面的小学生。喜欢算法,数据挖掘,图像识别,自然语言处理,神经网络,人工智能等方向。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“
点击“阅读原文”拥抱组织