各类聚类算法该如何选择
数据聚类是根据共同点对信息进行分类,主要问题是什么样的公共参数提供最好的结果以及“最好”包含什么意思。
本文介绍了最广泛的聚类算法,根据每种方法的特殊性,提供了对使用其应用的建议。
四种基本算法以及如何选择
根据聚类模型,可以区分四种常见的算法类别。一般而言,其他的聚类算法也不少,但是它们的流行程度以及应用领域都不是较为广泛。
1.基于数据集对象之间距离的算法
基于整个数据集对象之间距离的计算,被称为基于连接的或分层的。根据算法的“方向”,它可以联合或相反地分割信息数组——聚集和分裂的名称就是从这种精确的变化中出现的。最流行或者说最合理的类型是凝聚型,首先输入数据点的数量,然后将这些数据点合并成越来越大的集群,直到达到极限。
2.基于连接的集群化算法
基于连接的集群化最突出的例子是植物分类。数据集的“树”开始于一个特定的物种,结束于一些植物“王国”,每个“王国”由更小的集群(门、类、目等)组成。
在应用了其中一种基于连接的算法之后,将收到一个数据树状图,它将展示信息的结构,而不是其在集群上的明显分离。这样的特性既有好处也有坏处,算法的复杂性可能会变得过于复杂,或者根本不适用于层次结构很少甚至没有层次结构的数据集。还会出现糟糕的性能:由于大量的重复,完整的处理将花费大量时间,最重要的是它无法得到精确的结构使用层次算法。
同时,它需要从计数器输入的数据归结为数据点的数量,不会对最终结果产生实质性的影响,或者是预先设定的距离度量,它是粗略测量的。
3.基于中心体的集群算法
根据我的经验,基于中心体的集群是最常见的模型,因为它比较简单。该模型旨在将数据集的每个对象分类到特定的集群中。集群的数量(k)是随机选择的,这可能是该方法最大的“弱点”。这种算法由于与k近邻(k-nearest neighbor,kNN)方法的相似性,在机器学习中特别受欢迎。
计算过程包括多个步骤。首先选择输入数据,将数据集划分的大致聚类数。聚类的中心应放置在尽可能远的位置,这将提高结果的准确性。
其次,该算法找到数据集的每个对象与每个聚类之间的距离。最小坐标确定了将对象移动到哪个群集。
之后,将根据所有对象坐标的平均值重新计算聚类的中心。重复算法的第一步,但是重新计算了集群的新中心。除非达到某些条件,否则此类迭代将继续。例如,当集群的中心距上次迭代没有移动或移动不明显时,该算法可能会结束。
尽管数学和编码都很简单,但k均值仍有一些缺点,因此我无法在所有可能的地方使用它。那包括:
-
疏忽了每个集群的边缘,因为优先级设置在集群的中心,而不是边界; -
无法创建一个数据集结构,该结构的对象可以按等量的方式分类到多个群集中; -
需要猜测最佳k值,或者需要进行初步计算以指定此量规。
同时,期望最大化算法可以避免那些复杂情况,同时提供更高的准确性。简而言之,它计算每个数据集点与我们指定的所有聚类的关联概率。用于该聚类模型的主要“工具”是高斯混合模型(GMM),假设数据集的点通常遵循高斯分布。
k-means算法基本上是EM原理的简化版本。它们都需要手动输入集群数,这是此方法所要面对的主要问题。除此之外,计算原理(对于GMM或k均值)很简单,集群的近似范围是在每次新迭代中逐渐指定的。
与基于质心的模型不同,EM算法允许对两个或多个聚类的点进行分类,它仅展示每个事件的可能性,可以使用该事件进行进一步的分析。更重要的是,每个聚类的边界组成了不同度量的椭球体,这与k均值不同,在k均值中,聚类在视觉上表示为圆形。但是,该算法对于对象不遵循高斯分布的数据集根本不起作用。这是该方法的主要缺点:它更适用于理论问题,而不是实际的测量或观察。
4.基于数据密度的聚类算法
最后,基于数据密度的聚类成为数据科学家心中最青睐的非官方方法,包括模型的要点,将数据集划分为聚类,计数器会输入ε参数,即“邻居”距离。因此,如果对象位于ε半径的圆(球)内,则它与群集有关。
DBSCAN(基于密度的应用程序噪声空间聚类)算法会逐步检查每个对象,将其状态更改为“已查看”,将其分类到集群或噪声中,直到最后处理整个数据集。使用DBSCAN确定的集群可以具有任意形状,因此非常精确。此外,算法不会让你计算集群的数量,它是自动确定的。
不过,即使是DBSCAN这样的杰作也有缺点。如果数据集是由可变密度的数据集组成,则该方法的结果较差。如果对象的位置太近,并且无法轻松估算出ε参数,那么这也不是您的选择。
文章来源于ITPUB博客,版权归作者左右。
·END·
见微知著,数析万象!请扫码联系我们