如何为数据集选择正确的聚类算法?

作者| CDA数据分析师

应用聚类算法比选择最佳算法容易得多。每种类型都有其优点和缺点。如果你想争取一个干净的集群结构,你必须考虑它。数据聚类是排列正确的整个数据模型的重要步骤。为了进行分析,信息量应根据共同点进行分类。主要问题是什么样的通用参数可以提供最好的结果,以及“最佳”的定义中到底包含了什么。

这篇文章应该对想要更新他们对这个主题的记忆的新手数据科学家或专家有用。它包括最广泛使用的聚类算法及其深入评论。根据每种方法的特殊性,提出了考虑其应用的建议。

四种基本算法及其选择

根据聚类模型,可以区分四种常见的算法类别。一般来说,有不少于100种算法,但它们的普及程度和应用领域都非常适中。

分层聚类

基于整个数据集对象之间距离的计算,聚类被称为基于连通性或分层的。根据算法的“方向”,它可以反向组合或划分信息数组——聚合和分段的名称正是从这种精确的变化中得到的。最受欢迎和最合理的类型是聚合类型。您可以从输入数据点的数量开始,然后将这些数据点组合成越来越大的簇,直到达到极限。

基于连接的聚类最突出的例子是植物的分类。数据集的“树”以特定物种开始,以一些植物王国结束,每个植物王国由更小的集群(门、类、等级等)组成。)。

应用其中一种基于连通性的算法后,您将会收到显示信息结构的树数据,而不是集群中的不同分区。这种函数可能有利也有弊:算法的复杂性可能变得太高,或者不适用于几乎没有层次结构的数据集。它还显示出较差的性能:由于大量迭代,完成处理将花费不合理的时间。最重要的是,分层算法的使用不会产生精确的结构。

同时,从计数器所需的输入数据到数据点的数量,该点不会对最终结果产生实质性影响,也不会影响预设的距离测量,该距离测量也可以粗略测量和近似计算。

知识管理和聚类

根据我的经验,基于质心的聚类由于其简单性已经成为最常见的模型。该模型旨在将数据集的每个对象分类到特定的聚类中。簇号(k)是随机选择的,这可能是该方法的最大“弱点”。与最近邻相似,这种均值算法在机器学习中特别受欢迎。

计算过程包括几个步骤。首先,选择输入数据,这是数据集应该划分成的簇的大致数量。聚类中心应尽可能远离,这将提高结果的准确性。其次,该算法找到每个对象和数据集的每个聚类之间的距离。最小坐标(如果我们谈论的是图形表示)决定了对象移动到哪个簇。之后,将根据所有对象坐标的平均值重新计算聚类中心。重复算法的第一步,但是重新计算聚类的新中心。除非满足某些条件,否则这种迭代将继续。例如,当聚类的中心没有移动或者移动在前一次迭代中不明显时,算法可以结束。

虽然数学和编码很简单,但是k-means仍然有一些缺点,所以我不能在所有可能的情况下使用它。这包括:每个集群的疏忽,因为优先级设置在集群的中心,而不是边界;无法创建数据集结构,该结构的对象可以以相同的方式分类到多个集群中;你需要猜测最好的k值,或者你需要做一个初步的计算来指定这个量规。

同时,期望最大化算法能够避免这些复杂的情况并提供更高的精度。简而言之,它计算每个数据集点和我们指定的所有聚类之间的关联概率。这个聚类模型的主要“工具”是高斯混合模型(GMM)-假设数据集的点通常遵循高斯分布。

电磁算法

k均值算法基本上是电磁原理的简化版本。它们都需要手动输入簇号,这是该方法必须面对的主要问题。此外,计算原理(对于GMM或K均值)很简单:在每次新的迭代中逐渐指定聚类的近似范围。

与基于质心的模型不同,电磁算法允许对两个或多个聚类点进行分类——它只向您显示每个事件的可能性,您可以将其用于进一步的分析。更重要的是,每个聚类的边界形成具有不同度量的椭圆体,这不同于K-means,在K-means中,聚类在视觉上表示为圆。然而,对于对象不遵循高斯分布的数据集,该算法根本不起作用。这是这种方法的主要缺点:它比实际测量或观察更适合于理论问题。

DBSCAN

最后,对于基于密度的聚类,名称包括模型的关键点——将数据集划分成聚类,计数器将输入ε参数,即“邻居”距离。因此,如果对象位于半径为ε的圆(球)内,则它与聚类有关。

DBSCAN(基于应用的密度空带噪声聚类)算法将逐步检查每个对象,将其状态更改为“已查看”,并将其分类为或聚类,直到最终处理完整个数据集。DBSCAN确定的聚类可以是任何形状,因此非常精确。此外,该算法不允许您计算集群的数量——它是自动确定的。

然而,即使像DBSCAN这样的杰作也有其缺点。如果数据集由可变密度聚类组成,则该方法显示的结果很差。如果对象放置得太近,并且ε参数不容易估计,这可能不是您的选择。

总而言之,不存在错误的选择算法,其中一些算法更适合特定的数据集结构。为了总是采用最好的(更合适的)算法,你需要充分了解它们的优缺点。

例如,如果某些算法不符合数据集规范,可以从一开始就将其排除在外。为了避免单调乏味的工作,你可以花一些时间记住信息,而不是选择一条反复试验的道路,从自己的错误中学习。

我们希望您在开始时总是选择最好的算法。继续这项了不起的工作!

大家都在看

相关专题