聚类算法的选择及评估

摘要

数据分析在工业中的价值创造中扮演着不可或缺的角色。在这种情况下,聚类分析能够在几乎没有先验知识的情况下探索给定的数据集,并识别未知的模式。随着(大)数据在体量、种类和速度维度上的复杂性增加,这一点变得更加重要。从早期开始,已经开发了许多聚类分析工具,不同聚类算法的种类繁多。由于选择合适的聚类方法对数据分析结果至关重要,用户在从原始数据中提取知识的过程中需要支持。因此,本文的目标在于识别一种系统的聚类算法选择逻辑及相应的验证概念。其目标是使潜在用户能够选择最适合其需求和基础数据聚类问题属性的算法。此外,还支持用户选择正确的验证概念,以理解聚类结果。基于全面的文献回顾,本文提供了聚类方法评估和验证概念选择的评估标准。这些标准应用于几种常见算法,并通过引入基于伪代码的例程来支持算法的选择过程,这些例程考虑了基础数据结构。

1 引言

社会和工业中不断增长的数据量催生了机器学习和数据挖掘任务的新应用。每年产生的数字数据量正在迅速增加,预计将进一步呈指数增长(Statista 2018)。图1显示了2025年数字数据生产的预测与最新统计数据的比较。在这里,统计学、计算机科学和机器学习(ML)发挥了作用。ML技术非常适合分析大量数据。ML通常区分两种在数据分析中相关的类型:监督和无监督机器学习。监督机器学习需要关于数据中要检测的模式以及相应标记的先验知识。经典任务是回归或分类问题。另一方面,无监督学习不需要任何标签,并在数据中寻找未知模式,也称为其经典术语模式识别(Russell and Norvig 2020)。在这种情况下的经典任务是聚类问题。

只要有充足的数据,聚类算法就可以应用于各种任务,而不限于特定领域。非常突出的应用领域例如数据减少、假设生成、基于组的预测、商业应用和市场研究、生物学和生物信息学、空间数据分析以及网络挖掘(Gunopulos 2009)。

每种机器学习方法的一般目标,特别是数据聚类的目标,是从数据中提取知识,但正如(Xu and Wunsch 2005)所述:选择和设计合适的聚类算法是一个关键过程。

对于新用户应用聚类分析,有三个主要挑战:

  • 机器学习的一个普遍挑战是“无免费午餐定理”。(Wolpert 1996)指出在无噪声场景中无法进行学习算法的先验区分(Sewell and Martin)。
  • 没有适当的聚类技术评估的中央存储库。
  • 聚类评估指标必须与聚类算法的选择一致,并且还依赖于基础数据分布。特别是,内部指标根据定义是无监督的(见第2.2.3章)。

因此,事先决定选择哪种聚类算法和评估方法并不是一项简单的任务,特别是对于机器学习领域的新手。本文的主要目标是提供对最新聚类技术的综合分析和概述。我们希望呈现一个聚类算法的分类系统和选择工具,以及相应的聚类指标来评估聚类结果。

因此,本文的其余章节安排如下。在“预备知识”中定义了相关术语,以提供本文背景下的通用术语。第二章“最新技术:聚类技术”介绍了最新的聚类算法和聚类评估。该部分总结了这两个主题的总结和当前的不足之处。在第三章中,我们提出了一种系统的聚类算法和聚类评估选择程序,结合了最新技术和研究。最后,我们在第四章中引入了一些基于伪代码的例程来支持选择过程。然后讨论该方法,并以结论和展望结束本文。

1.1 预备知识

在下文中,我们定义或指定本文背景下使用的术语。

定义:聚类

首先,需要对“聚类”一词有一个共同的理解。(Fung 2001)强调文献中可以找到大量聚类定义。最简单的定义在所有定义中共享,并将聚类的核心概念描述为相似数据项的分组。在这种情况下,相似性可以通过不同方式确定,例如基于数学距离度量。尽管目前还没有对聚类术语的共同认可,并且可能在未来也不会找到,但(Jain and Dubes 1988)给出了一个更详细的定义,他们基于三个属性定义了聚类:

  1. 同一聚类中的实例必须尽可能相似。
  2. 不同聚类中的实例必须尽可能不同。
  3. 相似性和不相似性的度量必须清晰且具有实际意义。

定义:分类法

将事物和概念按相似质量分组并命名和组织的系统称为“分类法”(剑桥词典 2021)。在本文背景下,分类法用于根据其基础逻辑对聚类算法进行分类。本文后面将介绍聚类算法的分类法。

定义:聚类分析

根据(Xu and Wunsch 2005),典型的聚类分析包括四个核心步骤,并具有反馈路径。给定一些输入数据,第一步是特征选择或提取。在特征选择中,从多个候选项中选择区分特征。另一方面,在特征提取中,使用原始特征的一些变换来创建有意义的新特征。两者对于聚类应用的有效性都非常重要,优雅的特征选择/提取可以显著减少工作量并简化后续设计过程。一般来说,理想的特征应该对噪声免疫,并且易于提取和解释。

第二步是设计或选择一个合适的聚类算法。聚类算法的选择直接影响聚类结果。由于文献中可能的解决方案非常丰富,因此非常重要的是仔细研究基础问题的特征,以选择或设计适当的方法。

随后,需要验证所选算法的应用。给定某个数据集,聚类算法总会找到一个划分。关键是以解决初始问题的方式划分数据。因此,需要有效的评估标准来评估聚类结果。在这种情况下,一般可以区分三种概念:外部、内部和相对指标(Halkidi and Vazirgiannis 2008)。选择正确的评估标准对于评估结果也至关重要,并且高度依赖于基础数据以及应用的聚类算法。

最后一步,需要解释聚类结果。最终目标是从原始数据中提取有意义的见解,以解决初始数据聚类问题。图2总结了聚类的一般过程。正如图中所强调的,本文的重点是提供一个工具,用于聚类算法选择和验证步骤。

定义:聚类验证指标和指数

为了避免本文中的混淆,术语“指标”或“验证指标”始终用于指代某些表面的验证概念,而术语“指数”仅指实际提出或应用的验证方法,例如𝑆𝐷𝑏𝑤-指数。

2 最新技术:聚类技术

如上所述,聚类算法的选择和聚类验证过程在从数据中生成知识的过程中都至关重要。本章概述了这两个领域的现有文献。因此,第2.1章介绍了聚类算法及其适用性的现有工作。另一方面,第2.2章介绍了聚类验证概念。最后,第2.3章总结了最新技术和相关研究趋势的见解。

2.1 聚类算法和分类法

现今存在的不同聚类算法数量庞大。其中最流行的可能是MacQueen在1967年提出的k-means算法。从那些早期开始,越来越多用于不同目的的聚类算法被进一步开发出来。在大数据和计算能力不断提高的推动下,新的聚类算法仍在开发和提出,以满足当前的业务需求。

为了对这些聚类算法进行结构化,需要一个合适的分类法。文献中广泛使用的一种方法是区分基于划分的、层次的、密度的、网格的和基于模型的聚类算法。为了也能代表不适合这种传统分类的聚类算法领域的当前研究,在这里添加了新方法的组。本文中使用的分类法在下面更详细地描述。图3提供了一个概述,并显示了每组的示例算法。

基于划分的算法将一个包含n个对象的数据库D分成k个划分,每个划分k代表一个特定的聚类。相应的算法通常从D的初始划分开始。在这第一步中,每个划分(或聚类)由聚类的重心(k-means算法)或位于其中心附近的一个对象(k-medoid算法)表示。基于划分的算法然后迭代优化目标函数,以提高初始划分的质量。在最后一步,每个n个对象被分配到与所考虑对象最近的代表所在的聚类。将数据对象分配到聚类意味着划分等同于Voronoi图,其中每个Voronoi单元代表一个特定的聚类。基于划分的聚类算法的例子有k-means、PAM、CLARANCE或模糊c-means算法(Fahad等,2014;Xu等,1998)。

层次算法根据接近矩阵以层次方式组织数据库D。一般来说,层次分解由树状图表示,该树以整个数据库为根,迭代地将D分成更小的子集,直到每个叶节点代表一个单一的数据对象。聚类本身可以是凝聚的(自下而上)或分裂的(自上而下)。凝聚算法从树的叶节点开始,合并两个或多个适当的聚类,直到满足某个终止条件。另一方面,分裂算法从整个数据集作为一个单一的聚类开始,迭代地将聚类分成两个或多个最适当的子聚类,同样直到满足某个终止标准。与划分算法不同,层次算法一般不需要将聚类数k作为显式输入参数。然而,终止条件与结果聚类数密切相关。BIRCH、CURE和ROCK是层次聚类算法的常用代表(Fahad等,2014;Xu等,1998)。

基于密度算法的基本思想是根据高密度区域对数据对象进行划分。每个高密度区域代表一个数据聚类。相应的算法迭代地扫描每个数据对象(或一些代表)并根据其邻域将其分类为核心点、(直接)可达点和离群点。然后,如果数据点是“密度可达”的,则将其分配到一个公共聚类中。在这种情况下,“密度可达”意味着在两个数据对象之间存在一条核心点链,这些核心点本身或可达点。聚类因此可以沿着密度引导的任何方向增长。因此,基于密度的算法通常能够发现任意形状的聚类,并能够检测离群点和噪声。DBSCAN、OPTICS和DENCLUE是此类算法的示例(Fahad等,2014;Xu和Tian,2015)。

对于基于网格的聚类算法,第一步是将原始数据空间划分为定义大小的网格结构。然后计算每个网格的统计值,这些值用于实际的聚类过程。聚类过程可能有所不同,但通常高密度区域的网格被分配到一个公共聚类。累积的网格结构使基于网格的聚类算法独立于数据对象的数量,并且由于相应的算法在网格的统计信息上执行聚类而不是整个数据集,因此可以实现快速处理时间。基于网格技术的性能主要取决于网格的大小,通常比整个数据集小得多。WaveCluster、STING和CLIQUE是基于网格聚类方法的典型例子(Fahad等,2014;Xu和Tian,2015)。

基于模型的算法优化给定数据库与每个聚类的特定模型之间的拟合。此类算法的基本思想是数据由底层概率分布的混合生成。基于模型的聚类算法有两种:一种基于统计学习,另一种基于神经网络学习。统计方法利用概率度量来确定聚类。神经网络方法使用一组相互连接的神经元,每个连接都有一个相关的权重。基于模型的算法带来了诸如自动确定聚类数或处理噪声和离群点的优势。COBWEB或自组织映射是基于模型算法的流行例子(Fahad等,2014)。

“新方法”类别代表近年来不适合上述经典聚类类别的聚类算法。由于其独特的程序,例如亲和传播或支持向量的使用,无法将其分配到现有类别。另一方面,为每种算法定义一个独特的类别也不是目标导向的。因此,将它们分组到一个公共类别是最合适的程序。

2.1.1 聚类算法的比较研究

除了上述广泛使用的算法外,还有许多用于更具体任务的其他算法。由于这种大规模,许多作者尝试定义与算法本身相关的应用领域并进行了比较研究。以下是对现有技术的概述。

Fisher & van Ness (1971):这两位作者正式分析了聚类算法,旨在比较它们并为给定问题选择合适的聚类程序提供指导。他们指出,不可能确定“最佳”聚类算法,但强调了建议至少可接受的聚类算法的重要性。他们提出的程序包括九个可接受性条件,这些条件都应用于当时的几种标准聚类方法。这些条件基于聚类的形成方式、数据的结构以及聚类技术对不影响数据结构的变化的敏感性。举一个更具体的例子,Fisher & van Ness使用的可接受性条件例如:

  • 凸性:如果聚类结果中的聚类的凸包不相交,则聚类算法是凸可接受的。
  • 聚类比例:如果即使某些聚类被任意次数地复制,聚类边界也不会改变,则聚类算法是聚类比例可接受的。
  • 单调性:如果对相似矩阵的元素应用单调变换时聚类结果不变,则聚类算法是单调可接受的。
    他们得出的结论是,不可能创建一个满足所有定义条件的聚类算法(Fisher and van Ness 1971)。

Dubes & Jain (1976):Dubes & Jain为潜在的聚类技术用户设定了一些指导原则。为此,他们检查了八个代表当时各种技术的聚类程序,并从多个角度比较了它们的性能。评价标准类似于(Fisher and van Ness 1971)使用的标准,并且通过使用“Munson’s手写字符”数据集的一部分进行了正式的比较分析(Dubes and Jain 1976)。

Jain et al. (1999):Jain、Murty和Flynn提供了一个全面的聚类方法概述,旨在提供有关其应用的有用建议。关于评估某些算法适用性的评估标准,作者参考了(Fisher and van Ness 1971)的可接受性标准,并指出了先前工作的不同缺点。他们批评了缺乏关注以下方面的评估维度:(1)在决策过程中整合领域知识,(2)对大数据集的应用性能,以及(3)增量运行算法的可能性。这三个问题促使Jain等人基于这三个新的评价标准评估了几种算法。作者的工作中使用的分类法将聚类技术分为层次和划分方法,然后进一步分为子类别(Jain et al. 1999)。

Kleinberg (2002):Kleinberg解决了一个类似的问题,如上所述的论文。为了评估聚类算法,作者定义了三个标准:

  • 尺度不变性:相似度度量的任意缩放不应改变聚类结果。
  • 丰富性:聚类算法必须能够在数据上实现所有可能的划分。
  • 一致性:通过缩小聚类内距离和拉伸聚类间距离,聚类结果不应改变。
    除了类似的程序外,Kleinberg还提供了与(Fisher and van Ness 1971)相似的结果,表明不可能构建一个满足所有这些标准的算法,如其论文标题所示(“聚类的不可能定理”)。相反,他的论文进一步讨论了通过将满足条件的定义从“完全满足”软化为“几乎满足”,确实可以设计出一个“好的”聚类算法(Kleinberg 2002)。

Liao (2005):Liao研究了聚类算法在时间序列数据中的应用。作者调查了关于这一主题的不同研究,并根据它们是直接处理原始数据、间接处理从原始数据中提取的特征,还是间接处理从原始数据中构建的模型,将它们分为三组(Liao 2005)。

Xu & Wunsch (2005):Xu和Wunsch强调了聚类算法设计和选择在整个聚类过程中的重要性。他们调查了统计学、计算机科学和机器学习中出现的聚类算法,并展示了它们在一些基准数据集(如旅行商问题)中的应用。结果,Xu & Wunsch定义了一些关于新算法效率和有效性的重要属性。例如,聚类形状、噪声处理以及对输入模式顺序效应的免疫性(Xu and Wunsch 2005)。

Berkhin (2006):Berkhin对数据挖掘中的不同聚类技术进行了全面审查。作者定义了一系列聚类算法的属性,可以作为整体算法比较中的评估维度。例如,算法可以处理的属性、对大数据集的可扩展性以及对数据顺序的依赖性。这些属性与(Xu and Wunsch 2005)定义的属性非常相似。研究中的算法并不总是根据所有定义的属性进行评估,而是仅根据几个选定的属性进行评估(Berkhin 2006)。

Ilango & Mohan (2010):Ilango & Mohan调查了现有的基于网格的聚类算法,并比较了它们在聚类对象方面的有效性。为此,他们检查了算法的复杂性及其输入参数。此外,他们还指出了单个程序相比之下的一些优缺点(Ilango and Mohan 2010)。

Silva et al. (2013):作者调查了聚类技术,目的是对数据流进行聚类。为此,他们定义了一些成功程序的限制条件。从这些限制条件中得出了一些特殊要求,例如:

  • 执行快速和增量处理数据对象
  • 扩展到不断到来的对象数量
  • 检测离群点的存在并相应地采取行动
    基于这些限制条件,回顾了文献中现有的传统聚类技术,从而评估它们在数据流中的适用性(Silva et al. 2013)。

Fahad et al. (2014):Fahad等人基于大数据的适用性分析了聚类算法。为此,作者定义了一些基准不同聚类算法的标准,这些标准基于大数据的三维特性:体量、速度和多样性。体量维度的评估标准示例包括:

  • 数据集的大小
  • 高维数据的处理
  • 噪声的处理
    在理论上比较大数据特性后,从每个算法类别中选择最有前途的算法,通过在真实世界的交通数据集上应用进行了实证评估。作者得出结论,没有一种聚类算法能完全匹配所有特性,也没有在所有数据集中表现出色(Fahad et al. 2014)。

Xu & Tian (2015):Xu & Tian强调,由于信息的复杂性,每种聚类算法都有其自身的优缺点。他们全面回顾了传统和现代算法,并相互比较。总体而言,检查了来自九个类别的26种传统算法和来自十个类别的45种现代算法。使用的评估标准例如时间复杂性、可扩展性或对大规模和高维数据的适用性。结果为读者提供了系统和清晰的数据聚类方法论视图(Xu and Tian 2015)。

Sajana et al. (2016) & Nayyar & Puri (2017):这两篇论文一起介绍,因为它们都扩展了(Fahad et al. 2014)的工作。Sajana等人将相同的程序应用于更大范围的算法,而Nayar & Puri则更详细地描述了有关算法评估的相关工作(Nayyar and Puri 2017;Sajana et al. 2016)。

Saxena et al. (2017):作者概述了现有的聚类方法和各个时期的进展。他们讨论了十二种聚类算法的特性和局限性,其中包括上述算法类别的经典代表,如k-means、BIRCH和DBSCAN。此外,定义并评估了几个观察到的算法的评价标准,重点关注数据的规模和维度以及它们对离群点的敏感性。最后,强调了聚类在图像分割、对象和字符识别、信息检索以及数据挖掘中的应用(Saxena et al. 2017)。

2.2 聚类验证概念

在本章中,我们介绍聚类验证的概念,并通过一个示例解释其挑战。

2.2.1 聚类验证的目的

(Halkidi 和 Vazirgiannis 2008; Deborah 等 2010) 指出,聚类算法的结果高度依赖于用户定义的输入参数和随机初始化。一个很好的例子是著名的 k-means 算法:在这里,k 的值和质心的随机初始化对聚类结果有很大影响。

为了选择适当的、在最佳情况下的输入参数值以及比较同一数据集的不同分区,标准化的分析指标是必要的。因此,使用验证指数的主要目标是找到数据集的最佳分区,以及导致这些结果的输入参数。最佳一词不仅指正确的聚类数量,还指数据点正确分配到各自的聚类中。

最佳或最好的概念必须在使用的验证指数的上下文中理解,因为每个指数假定不同的概念和优选聚类的属性,以确定好的和坏的分区的特征。

2.2.2 算法与验证方法的连接

(Handl 等 2005) 指出,内部验证指数的选择可能并不独立于使用的聚类算法,因为两者都基于对聚类结构的某些假设。这导致指数对特定算法的偏向性。为了选择一种允许得出有意义结论的算法和指数组合,理解所使用的算法和评估指数的工作原理是至关重要的。此外,还指出,一个好的分区在多个指数下往往表现得相当不错。如果它仅在其中一个指数下表现良好,则可能表明存在对所使用算法的偏向性。

为了说明这一点,我们对图 4 所示的二维合成数据集应用了 k-means 算法,k 的取值为 1 到 5,以及 DBSCAN 算法。随后,对数据集的每个分区应用了三种不同的验证指数。使用的指数是平均轮廓系数(SilSc)、CDbw 指数(高值表示优选分区)和 SDbw 指数(小值表示优选聚类)。SilSc 是为通过比率尺度(例如欧几里得距离)构造的(Rousseeuw 1987)。SDbw 指数尝试结合聚类的紧凑性和分离性等不同属性来确定分数。这些属性的测量也基于欧几里得距离。该指数还尝试考虑密度的概念(Vazirgiannis 和 Halkidi 2001)。CDbw 指数通过紧凑性和分离性等属性评估聚类解决方案,并考虑密度的概念。计算基于每个聚类的代表点的选择,这也尝试考虑聚类的形状(Halkidi 和 Vazirgiannis 2008)。

不同解决方案的指数值如表 1 所示。这个并不全面的示例清楚地表明,基于 SilSc 和 SDbw 指数,所有从 k-means 算法得出的解决方案都应被认为更好,而真实值则导致较低的值,因此被认为最差。这表明选择合适的验证指数并非易事,应该谨慎进行。为了选择适当的指数,应考虑不同的维度,例如可扩展性、聚类形状偏向、聚类数量偏向、复杂性。这在处理高维数据时尤其重要,因为无法进行视觉评估。

2.2.3 聚类验证指标的分类

(Halkidi 和 Vazirgiannis 2008) 总结了不同类型的验证指标如下:第一类指标称为外部指标,它们试图基于预定义的类结构作为真实值来比较不同的分区。第二类称为内部指标,其中包含相对指标。内部指标使用找到的聚类和基础数据来判断相应解决方案的质量。相对指标比较不同输入参数的结果并回答哪个解决方案更优的问题。换句话说,它们试图对不同的解决方案进行排名。由于聚类是一项无监督任务,没有先验信息,本文的范围主要集中在内部指标上。

每个指标,无论其类别如何,都试图基于不同的属性和对数据良好分区的假设来量化聚类解决方案的质量。尽管没有普遍的方法来构建合适的和良好的指标,但文献中提出了适合指标的不同限制。

(Amigó 等 2009) 提出了适合外部指标的四个不同约束。第一个是同质性,这基本上意味着一个数据集的分区 C1 包含一个聚类,该聚类包含两个不同类 Ki 和 Kj 的所有对象,应被认为比分区 C2(同一数据集的分区)更不优,C2 与第一个分区相同,但 Ki 和 Kj 类的所有对象现在分别在各自的聚类中。第二个约束是完整性,这意味着同一类的对象应属于同一个聚类。遵循该约束的指标应优先考虑分区 C1,其中 Ki 类的所有对象都在同一个聚类中,而不是一个相同的分区,其中 Ki 类的对象分布在两个或更多不同的聚类中。这是指标应遵循的最基本的限制。第三个约束称为杂乱袋,基于“将混乱引入一个混乱的聚类比将混乱引入一个干净的聚类危害更小”的概念(Amigó 等 2009)。最后一个约束是聚类大小与数量,本质上归结为“在一个大聚类中的小错误应优于在小聚类中的大量小错误”的想法(Amigó 等 2009)。

内部指标试图基于找到的聚类和基础数据的内在信息来衡量聚类解决方案的质量。(Handl 等 2005) 根据测量的属性将内部指标分为三到四组验证技术。第一组测量聚类的紧凑性,例如基于聚类内方差。通常,有不同的方法来测量聚类的紧凑性,这不在本文的范围内。第二组试图评估连接性或更准确地说,一个分区在多大程度上符合项目与其最近邻居分组的概念。第三组包含所有量化聚类分离度的测量(Amigó 等 2009)。一个例子是加权聚类间距离。第四组包含第一组三组的组合指标,从而代表了一组更高级的方法。这些指标计算紧凑性和/或连接性和/或分离度的独立分数,并将其合并为最终分数。通过这种方式,可以考虑不同概念之间的权衡。例如,聚类内紧凑性随着聚类数量的增加而改善,而聚类之间的距离和因此分离度则变差。(Deborah 等 2010)采用紧凑性和分离度的概念,并将其扩展为额外的概念——排他性和不正确性,并得出一个适合指标可能遵循的可优化的通用函数。排他性基于概率密度函数来测量,旨在发现数据中的不规则性并识别离群点。不正确性试图估计错误分配对象的质量损失。该口头函数定义如下:

OBF = min ⁡ ( compactness ) + max ⁡ ( separation ) + max ⁡ ( incorrectness ) + min ⁡ ( exclusiveness ) \text{OBF} = \min(\text{compactness}) + \max(\text{separation}) + \max(\text{incorrectness}) + \min(\text{exclusiveness}) OBF=min(compactness)+max(separation)+max(incorrectness)+min(exclusiveness)

2.3 最先进技术的见解

从早期文献开始,许多工作都致力于不同聚类算法之间的比较。早期的工作,如 (Fisher 和 van Ness 1971) 和 (Dubes 和 Jain 1976) 的论文,得出了一个重要的见解,即没有一种完美的聚类算法适用于所有问题,此外,根据基础数据聚类问题的不同,在不同的评估维度之间总是存在权衡。后来的工作也证实了这一点,例如 (Kleinberg 2002) 的研究。不幸的是,这些早期的工作并不符合当今对聚类算法的需求。例如,重要的方面如对大数据集的适用性缺失。

这些要求在后来的工作中得到了定义,这些工作还引入了现代聚类算法的评估维度,如处理高维度数据或大数据集的可扩展性(Jain,Murty 和 Flynn 1999;Xu 和 Wunsch 2005;Berkhin 2006)。尽管这些工作在展示一个全面的算法比较方面朝着正确的方向前进,但算法分析是不完整的,每种算法只选择了特定的评估维度和应用领域。

关于现代聚类算法评估的最重要的工作是 (Fahad et al. 2014) 和 (Xu 和 Tian 2015) 的研究。在这两篇论文中,评估标准用于现代算法的应用,并在应用于大量近期文献中的聚类算法之前明确定义。虽然 Fahad 等人完全专注于大数据的应用(并且忽略了其他方面),Xu 和 Tian 则以更一般的方式比较了算法。尽管如此,评估维度和结果非常相似,可以作为一个很好的基础。然而,这两篇论文都有一些缺点:

  • 领域信息在论文中没有涉及:例如,用户在应用某种算法之前需要考虑哪些输入参数是非常重要的。输入参数的选择极大地影响了算法的结果。在这种情况下,最重要的问题可能是是否需要预先确定聚类的数量。对于 k-means 算法,数量是预先固定的,而对于 DBSCAN,聚类的数量仅能间接控制。
  • 输出格式在论文中没有涉及:关于聚类结果的可解释性,记住输出结构是非常重要的。
  • 实现方面在论文中没有涉及:仅仅存在一个适合用户给定问题的聚类算法并不能解决问题。还需要有一个在广泛使用的编程语言中实现的算法,这对所有考虑的算法来说并不一定存在。

通过结合 (Fahad et al. 2014) 和 (Xu 和 Tian 2015) 的工作,并解决现有的缺点,可以详细制定现代聚类算法的全面选择逻辑。关于这一过程的明确要求将在第三章中描述。如上所示,在选择合适的算法之后,需要评估找到的分区以量化它们的质量,并比较不同输入参数的不同解决方案,最终目标是找到一个适合数据基础结构的分区,或者换句话说,尽可能接近基础概念。显然,创建验证指标以及决定使用哪个指标并不简单,必须谨慎执行。在本文中,我们将对一些提出的指标进行分类,并开发一个选择工具,以便在第三章中为快速但也彻底的选择奠定基础。

3 提出系统性聚类算法和验证概念的选择逻辑

每种机器学习方法的主要目标,尤其是数据聚类,是从数据中提取知识。(Xu 和 Wunsch 2005) 指出,选择和设计合适的聚类算法以及找到匹配的验证概念是这段旅程中的关键。根据基础数据和业务问题的特性,某些算法的性能会有所不同。这些特性需要被识别和评估,以便应用于最近实践中使用的最重要的聚类算法。因此,本章的总体目标是解决聚类方法的算法选择和聚类验证步骤,并在识别系统性逻辑以选择适合的聚类算法和相应的验证概念以适应给定的数据集和业务问题。需要说明的是,不可能找到“最佳”的算法或验证指标,但本章旨在寻找可接受且总体表现良好的代表。从这个目标陈述中,可以得出两个核心研究问题(RQ):

  • (RQ1) 哪些评估维度可以用来评估某个聚类算法对特定数据集/业务问题的适用性?
  • (RQ2) 哪些评估维度可以用来评估聚类验证指标的适用性?

RQ1 预先定义了一些关于评估维度的要求:
(i) 评估维度必须能够评估应用于当前数据聚类问题的最先进的聚类算法。这些问题主要具有大数据特征。
(ii) 评估维度必须服务于面向应用的方法。每个维度必须明确评估,并且必须能够从评估结果中提取系统的选择逻辑。

RQ2 定义了用于分类不同验证指标的维度,以评估它们对特定验证问题的适用性。图 5 总结了本章的目标陈述和相应的研究问题。

3.1 评估聚类技术

为了满足 RQ1,基于文献回顾和自身假设引入了十二个评估维度。它们可以分为五类。类别体积、速度和多样性侧重于大数据的适用性。类别超参数与输出以及应用则侧重于聚类算法的一般和应用导向特征。下面详细解释了十二个评估维度,并在图 6 中总结。

输入

输入参数的性质和数量极大地影响聚类结果的质量。算法需要的输入参数越多,找到好的参数越复杂,算法最终的实用性就越差。每个聚类算法的理想特征是尽可能少的输入参数,同时仍能提供出色的结果。这个评估维度关注于描述观测算法的所有输入参数,因此也包括潜在用户在应用该算法之前需要考虑的所有领域知识。其中一个最重要的输入参数是所需的聚类数量 k,这就是为什么 k 作为输入参数在一个单独的评估维度中被明确讨论。

输出

聚类结果的可解释性对于解决初始业务问题至关重要。因此,向用户提供关于观测算法输出结构的详细信息是非常重要的。举个例子:k-means 和 k-medoids 算法(如 PAM 或 CLARA)都将重心作为其聚类结果。对于 k-means,这个重心是基于聚类内均值计算的特征空间中的虚拟点,而 k-medoids 算法的输出实际上是聚类中最接近虚拟重心的真实数据点。

数据集大小

数据集的大小对聚类质量和相应的处理时间有重大影响。一些聚类算法在应用于小数据集时更准确和高效,而另一些则在应用于大数据集时表现更好(Fahad et al. 2014)。大规模数据的算法通常利用方法来减少或聚合原始数据集的大小,例如采样或应用网格。这是准确性和处理时间之间的权衡。该维度的评估区分了“大型”和“小型”数据集。

处理高维数据

数据中的高维度指的是包含大量特征。能够准确处理此类数据是聚类算法的一个特别重要的能力,因为如今许多应用需要分析高维数据。例如,图片包含成千上万的像素作为特征,文本数据分析或语音识别也面临同样的问题。由于“维度诅咒”,处理高维数据通常是不可能的,许多维度可能不相关。随着维度数量的增加,数据变得越来越稀疏。结果,数据点之间的距离测量变得毫无意义,数据空间中任何地方的数据点的平均密度可能很低(Fahad et al. 2014)。算法被评为能够处理高维度或不能处理高维度。

处理噪声数据和离群点

一般来说,现实世界的数据集并不纯净,总是包含一些噪声或离群点。这使得算法难以找到合适的聚类。一些算法对噪声和离群点敏感,因此在聚类过程中明确地将它们纳入,而其他算法能够检测噪声和离群点,并在找到合适的聚类过程中忽略它们(Fahad et al. 2014)。同样,算法被评估为能够处理噪声和离群点或不能处理噪声和离群点。

数据集类型

大多数算法设计用于应用于数值或分类数据。其他算法则优化用于特定数据类型的应用,如空间数据,只有少数算法能够处理不同数据类型的组合。在为给定数据集选择合适的聚类算法的过程中,选择能够处理相应数据类型的算法是非常重要的。

聚类形状

聚类算法处理数据集以找到合适聚类的方式决定了可以找到的聚类形状。例如,使用传统的距离测量生成的聚类结果中,聚类只有凸形,因此只有在数据集中以凸形存在时才能正确检测到聚类。其他算法能够在数据中检测任意的聚类形状,例如,如果方法基于密度而不是距离测量构建聚类。

时间复杂度

关于算法时间复杂度的最关键因素是数据集的大小,但其他输入参数也可以影响处理时间,如聚类数量或在原始数据上应用的网格形状。在最佳情况下,处理时间与数据输入之间的关系是线性或更低的,但有些算法更复杂,遵循平方依赖性。例如,聚类算法的用户必须记住算法的时间复杂度以及他们希望应用的数据库,以避免长时间的处理时间,这很容易变得不切实际(Fahad et al. 2014)。在评估中,时间复杂度被分为“低”、“中”或“高”以保持概述。

对数据输入顺序的敏感性

如果不同的输入顺序导致不同的聚类结果或不同的处理时间,则算法对数据输入顺序敏感。这个评估标准对于增量处理数据集的算法尤其重要。例如,如果整个数据集的体积超过了处理计算机的内存容量,则使用增量聚类。数据在处理前需要排序,并且对顺序的不敏感性是可取的(Sheikholeslami 等;Xu 和 Tian 2015)。算法可以被评为“无敏感性”、“中等敏感性”或“高度敏感性”。

可扩展性

随着数据集大小、维度数量或聚类数量的增加,算法的性能通常会有所不同。可扩展性是指算法在上述参数变化时保持其性能的能力。面对当前的数据聚类问题,随着样本、维度和聚类数量的增加而扩展良好的算法是可取的。在评估过程中,可扩展性被评为“低”、“中”或“高”。

聚类初始化

如上所述,算法的实际应用取决于相应输入参数的数量和复杂性。其中最重要的是聚类数量。虽然一些算法需要预先定义聚类数量,但其他算法则不需要,这在总体上是可取的。预先确定聚类数量需要基本的领域知识。举个例子:聚类著名的鸢尾花数据集,如果聚类数量固定为 k=2 或 k=4,则会产生无用的结果。算法的申请者需要预先知道算法应该在数据中找到 k=3 个聚类,以获得良好的结果。但在如今高体积和复杂性的数据聚类中,确切的聚类数量通常不是预先已知的,需要复杂且耗时的方法来找到一个好的 k 数量,然后再应用算法(Fahad et al. 2014;Xu 等 1998)。因此,如果算法用户不确定给定数据集中适合的聚类数量,抽象该输入参数的算法是可取的。

实现

即使理论上最适合的算法,如果没有易于普通用户采用的良好实现,也毫无价值。对于大多数聚类算法,数据分析中最重要的编程语言(如 R、MATLAB 或 Python)中都有可用的框架和库。但仍有一些算法尚未找到实际和易于采用的使用方法。

3.2 评估聚类验证

为了回答 RQ2,引入了四个用于评估聚类验证概念的维度。它们描述了在验证过程中如何使用找到的聚类,以及它们如何影响验证指数的结果和适用性。另一个标准是处理噪声的能力,而无需任何预处理。此外,还考虑了指数的复杂性和计算成本。此分析的目标是提供不同验证指数的概述,以简化用户的正确选择。所有维度都在图7中可视化。此外,还将提供一些关于指数的附加信息,如值的解释、附加属性或未解决的问题。

3.2.1 评估维度的定义

检测任意聚类形状的能力

与聚类算法类似,验证指数在检测任意聚类形状时也存在类似问题,因此如果预期或使用的算法可能生成这样的聚类形状,则不应使用这些指数。例如,DBSCAN算法生成的聚类解决方案应使用能够检测任意聚类的指数进行验证。我们将能力区分为三个不同的级别——低、中和高。低级别的指数在找到任意聚类时有困难,主要用于球形/凸形且大多分离良好和紧凑的聚类。如果指数在非标准几何形状的聚类上表现良好,但无法检测环形或特别弯曲的聚类(如SDBW指数),则评为中等。能够找到任意聚类形状的指数属于最高级别。

聚类数量的影响

找到的聚类可能通过聚类数量影响验证过程的结果,因为某些指数可能偏向于较多的聚类数量。

处理噪声的能力

与检测任意聚类的能力一样,此维度的重要性也依赖于使用的算法,并且仅在使用像DBSCAN这样的算法时才起作用,这些算法会主动检测噪声和离群点。需要说明的是,此维度仅关注指数是否能够在没有任何预处理或扩展的情况下处理噪声。

计算成本和复杂性

随着大数据的相关性和纯粹数据量的不断增加,使用能够以可承受的成本评估高维数据的指数变得越来越重要。计算成本和复杂性维度试图考虑这一点。

3.2.2 选定指数的概述

这里我们将简要介绍到目前为止我们选择的指数。

Dunn-指数 (Halkidi et al. 2002)

Dunn-指数更像是一系列指数而不是一个单一的指数,所有指数都遵循相同的公式。具体的指数可能在簇间距离和簇内距离的计算上有所不同。

D u n n − Index = min ⁡ 1 ≤ i ≤ k { min ⁡ 1 ≤ j ≤ k 且 i ≠ j { min ⁡ 1 ≤ c ≤ k d ( X i , X j ) max ⁡ 1 ≤ c ≤ k σ ( X c ) } } Dunn-\text{Index} = \min_{1 \leq i \leq k} \left\{ \min_{1 \leq j \leq k \text{且} i \neq j} \left\{ \frac{\min_{1 \leq c \leq k} d(X_i, X_j)}{\max_{1 \leq c \leq k} \sigma(X_c)} \right\} \right\} DunnIndex=1ikmin{1jki=jmin{max1ckσ(Xc)min1ckd(Xi,Xj)}}

平均轮廓系数 (Rousseeuw 1987)

当对象之间的距离由比例尺(例如欧几里得距离)给出且聚类紧凑且分离良好时,平均轮廓系数(SilSC)效果最佳。对于每个对象,单个轮廓系数 ( s(i) ) 计算如下:

s ( x i ) = b ( x i ) − a ( x i ) max ⁡ { a ( x i ) , b ( x i ) } , 其中 s ( x i ) ≤ ∣ 1 ∣ s(x_i) = \frac{b(x_i) - a(x_i)}{\max\{a(x_i), b(x_i)\}}, \text{其中} s(x_i) \leq |1| s(xi)=max{a(xi),b(xi)}b(xi)a(xi),其中s(xi)∣1∣

其中, ( a(x_i) ) 描述了同一聚类中所有对象 ( x_i ) 之间的平均不相似度, ( b(x_i) ) 是 ( x_i ) 与其他所有聚类对象之间的最小平均不相似度。聚类划分 ( C ) 的平均轮廓系数定义为所有单个轮廓系数的平均值:

S ( C ) = 1 ∣ X ∣ ∑ i = 1 n s ( x i ) S(C) = \frac{1}{|X|} \sum_{i=1}^n s(x_i) S(C)=X1i=1ns(xi)

SDBW (Vazirgiannis and Halkidi 2001)

此指数通过增加紧凑性和分离的度量来计算其最终得分。紧凑性由簇内方差测量,分离由簇间密度测量,定义如下:

ρ intra ( C ) = 1 k ( k − 1 ) ∑ j = 1 k ∑ m = 1 i ≠ j n density ( u i j ) max ⁡ { density ( c j ) , density ( c m ) } \rho_{\text{intra}}(C) = \frac{1}{k(k-1)} \sum_{j=1}^k \sum_{\substack{m=1 \\ i \neq j}}^n \frac{\text{density}(u_{ij})}{\max\{\text{density}(c_j), \text{density}(c_m)\}} ρintra(C)=k(k1)1j=1km=1i=jnmax{density(cj),density(cm)}density(uij)

σ intra ( C ) = ( 1 k ∑ j = 1 k ∥ σ ( c j ) ∥ ) / ∥ σ ( X ) ∥ \sigma_{\text{intra}}(C) = \left( \frac{1}{k} \sum_{j=1}^k \|\sigma(c_j)\| \right) / \|\sigma(X)\| σintra(C)=(k1j=1kσ(cj))/∥σ(X)

密度函数是测量给定点邻域内点数的度量,定义如下:

density ( u ) = ∑ l = 1 n j m f ( x l , u ) , 其中 n j m = ∣ X j ∪ X m ∣ \text{density}(u) = \sum_{l=1}^{n_{jm}} f(x_l, u), \text{其中} n_{jm} = |X_j \cup X_m| density(u)=l=1njmf(xl,u),其中njm=XjXm

f ( x , u ) = { 0 , 如果 d ( x , u ) > stdev 1 , 否则 f(x, u) = \begin{cases} 0, \text{如果} d(x, u) > \text{stdev} \\ 1, \text{否则} \end{cases} f(x,u)={0,如果d(x,u)>stdev1,否则

CDBW (Halkidi and Vazirgiannis 2008)

为了考虑划分 ( C ) 中聚类的形状,首先为每个聚类计算代表点。基于这些点,通过将紧凑性和分离的度量相乘来计算最终得分:

C D B W = S C ( C ) × Cohesion ( C ) , k > 1 CDBW = SC(C) \times \text{Cohesion}(C), k > 1 CDBW=SC(C)×Cohesion(C),k>1

紧凑性和分离的度量是紧凑性和分离的组合。Cohesion试图考虑簇内密度随簇内总体密度的变化,定义如下:

KaTeX parse error: Expected 'EOF', got '_' at position 64: …s}}{\text{Intra_̲change}(C)}

DBCV (Moulavi et al. 2014)

DBCV-指数特别适用于评估基于密度的聚类,因此主要通过密度而不是距离来定义。首先计算所有点的核心距离,它等于“每个点相对于其簇中所有其他点的密度的倒数”。这用于“定义对称可达距离,然后在每个簇内构建最小生成树(MST)”,该树捕捉了簇的形状和密度。基于此MST,提取簇的密度稀疏性(DSC)和簇对的密度分离(DSCP),其中DSC定义为“簇的MST内部边的最大边权重”,DSPC定义为“各簇MST内部节点之间的最小可达距离”。基于这些,计算簇的有效性指数 ( VC )。最终指数定义如下:

D B C V ( C ) = ∑ i = 1 ∣ C ∣ V C ( C i ) DBCV(C) = \sum_{i=1}^{|C|} VC(C_i) DBCV(C)=i=1CVC(Ci)

3.3 聚类速查表

在本章中,使用第3.1和3.2节中的评估维度对总共34种聚类算法和9种验证指标进行了评估。我们提供了一个托管在GitLab上的分类聚类算法和评估指标的扩展库(https://git.scc.kit.edu/ml-wzmm_public/a-clustering-algorithm-review)。一个基于Web的交互版本可以在https://jhillenbrand.github.io/cluster_table.html找到。

从一个聚类问题及其对应的数据集开始,这个全面的比较表可以作为系统选择逻辑,用于找到合适的聚类算法和验证概念。用户只需过滤列中的合适描述。可视化的决策树示例展示了从用户角度看这一过程可能的样子。为了使选择逻辑更加方便,第四章提供了一些伪代码,这些代码可以自动从原始数据集中提取关于数据特征的必要领域知识。

如图8所示,用户首先确定数据集中要检测的聚类数量是否已知。结合假设要检测的聚类是凸形的,用户再次沿着上路径进行。这两个决定已经导致推荐使用基于分区的聚类算法。但该组中不同算法的范围仍然很大。因此,在下一个节点,用户定义数据集是相对较小(见第四章了解更多关于这可能意味着什么)的还是较大。对于小数据集,该过程建议使用经典的基于分区的算法,如k-means或PAM。对于较大的数据集,根据比较表的见解,一些PAM的变体更有用,因为它们可以应用于子样本以获得更好的运行时间,即CLARA或CLARANCE。

关于选择合适的验证概念,图9作为一个示例。用户从领域知识中得出聚类可能具有任意形状,并假设数据集相对嘈杂。第一个点——任意形状——将用户引导到下分支。接下来,用户决定不应有额外的预处理步骤来处理数据中的噪声。因此,速查表将推荐DBCV作为可能的验证指标,因为它可以处理任意聚类形状和噪声。

4 算法选择辅助

根据第3.1章中的评估维度,我们提供伪代码来辅助基于所考虑数据集的样本输入数据选择相应的聚类算法。这些方法假设没有一般适用性,但在任意数据集上表现良好,作为复杂的猜测。

例程1期望输入一个原始数据集,并提取样本数量𝑛以及维度𝑚。对于不同数量的聚类𝑘 ∈ {2, 100, 1000},以及从收集的聚类算法表中每个算法,该函数计算执行聚类任务所需的每个样本的必要操作。因此,使用表中的大O符号𝑂(𝑛, 𝑚, 𝑘)。然后,该函数按升序返回每个算法的每个样本的计算步骤,以便用户可以选择给定数据集的最有效聚类算法。

例程2期望输入一个原始数据集。它提取关于数据集维度的信息,其中𝑛贡献观察数,𝑚贡献不同特征数。实现的逻辑基于𝑚返回维度类别的标签。这应该帮助用户识别他处理的是低维还是高维数据。

例程3期望输入一个原始数据集。它提取关于数据集维度的信息,其中𝑛贡献观察数,𝑚贡献不同特征数。实现的逻辑基于𝑛返回大小类别的标签。这应该帮助用户识别他处理的是小、中或大数据集。该逻辑基于(Pedregosa等,2011)。

例程4尝试提取关于数据集是否包含大量噪声的信息。原始数据集用作输入参数,并使用z-score标准化进行标准化。通过为每个维度从连续均匀分布中抽取的人工噪声添加到数据集中并单独存储。最后,计算两个数据集到均值的欧几里得距离,按升序排序并绘图。总体思路是,噪声引入到已经嘈杂的数据集应该对均值距离分布的影响小于对不包含噪声的数据集的影响。当然,这种方法相当表面化,并且在严格假设和限制下工作,应该被理解为帮助没有经验的用户了解数据中噪声的第一个示例。相应的图表显示在图10和图11中。

为了识别底层数据及其相应的聚类是否符合凸形,我们提出了实际聚类边界点与拟合椭球体的相似性比较。根据定义,椭球体积是凸的,因此可以作为近似表示凸数据分布。因此,我们计算拟合到聚类点的椭球体积𝑉𝐸,并与聚类边界点的实际体积𝑉𝐵形成比率。如果这个比率𝑉𝐸/𝑉𝐵低于任意阈值(这里我们使用𝜏 = 0.7),则底层聚类点不能很好地被椭球体拟合。然后,我们建议使用能够处理非凸聚类形状的算法。

伪代码例程5a和5b说明了如何检测聚类点凸性的过程。例程5a假设用户已经可以将分离的聚类点提供给我们的方法。然后,它从检索该聚类的边界点开始。在我们的实现示例中,我们使用MATLAB通过alpha形状找到边界点(MathWorks 2014)。接下来,使用凸包方法(MathWorks 2006)和Khachiyan算法(Moshtagh和Nima 2009)计算边界点和椭球体的体积。如果这些体积的比率低于定义的阈值,则聚类点被标记为非凸,并可以从提供的集合中选择适当的聚类算法。

使用例程5b以不同方式解决问题:这里假设用户可以预先指定数据集(或子集)中的聚类数量𝑘。然后,我们使用k-means找到聚类组,并根据5a计算边界点和椭球体的体积。然后,基于阈值𝜏还可以指定这些聚类组是否符合椭球形状。这些过程当然依赖于阈值𝜏的定义,但提供了几何动机和可比的聚类形状凸性的相对度量。

5 讨论

在本章中,评估了第三章和第四章的系统提案是否达到了最初的目标声明。再次强调目标,本工作旨在为给定数据集和业务问题选择合适的聚类算法和相应的验证概念提供系统逻辑。由此声明衍生出的两个研究问题是:(1) 识别适当的评估维度以评估聚类算法对特定数据集和业务问题的适用性;(2) 识别适当的评估维度以选择合适的聚类验证概念。

聚类算法

在本提案中,引入了十二个评估维度来评估聚类算法。如图6所示,这些维度可以分为五类,每类从不同角度强调聚类算法的适用性。“体量”、“速度”和“多样性”类别提供了大数据视角。“超参数与输出”类别确保在提案中考虑领域知识,而“应用”类别确保整个过程以应用为导向执行。借助第3.3章中的全面比较研究和第四章介绍的算法,评估维度作为用户的决策支持工具,从而满足研究问题1。

除了满足本文主题外,还有一些需要详细讨论的属性:第一个问题涉及聚类算法的不同评估维度的表达。这个问题独立于评估所基于的维度,并且与用于评估的资源的性质有关,这些资源来源于不同的时间。例如,Huang(1997)将k-modes算法定义为1997年用于非常大数据集的聚类方法,而今天“非常大”的理解可能完全不同。然而,有时没有其他资源可以根据今天对“大”的理解来调查k-modes在大数据上的应用。另一个问题是不同算法的评估是独立执行的。这与之前的问题密切相关,基于不同资源中定义的术语没有普遍理解的问题。一个作者将“高维”定义为特征空间大于5的数据,而另一个作者可能将“高维”定义为特征空间大于30的数据。大多数情况下,资源中使用的术语实际上意味着什么没有详细讨论。另一个与算法评估程序相关的问题是,同一算法基于相同标准评估时,在观察不同资源时评估结果不同。例如:根据Fahad等(2014),COBWEB的时间复杂度为𝑂(𝑛²),根据Berkhin(2006),为𝑂(𝑛),而根据Xu和Tian(2015),为“低”,通常代表线性依赖。实际上,算法的“时间复杂度”维度没有太多解释空间,但似乎仍有不同的评估结果。最后一个关于评估程序的问题是算法的评估可能存在偏差。特别是当算法的作者自己评估其性能时。最后,一些聚类算法之间的差异并不普遍适用于所有算法,因此引入通用评估维度没有用处。因此,一些算法看起来适用于同类问题,尽管它们追求不同的目标。例如:DBSCAN和SNN在所有维度上被评为相似,但SNN最适合找到不同密度的聚类,而DBSCAN则不适合。定义一个专注于检测不同密度聚类的评估维度并非目标导向,因为基于分区的算法对此没有用处。相反,这些方法可以应用于更详细的层面,例如密度基聚类方法的评估,或者如Berkhin(2006)所做,仅评估基于网格的算法。

聚类验证

如上所述,选择合适的验证指标取决于数据的属性以及使用的聚类算法。文献提出了许多不同的指标,因此选择一个合适的指标并非易事。为了支持研究人员和用户选择指标,我们提出了聚类形状、聚类数量、噪声处理和复杂性/计算成本等评估维度,我们认为这些是最重要的。我们示例性地对所提到的指标进行了分类。下一步将使用这些维度进一步分类其他指标,并在必要时增加更多评估维度。

此外,分析应用所提出的逻辑特别是对没有经验的用户的好处的实证研究将强调所提出分类法的必要性。此外,研究人员在提出新的验证指标时可以使用这些评估维度来分析其提案,并确保它可以被广泛用户轻松应用。另外,还需要进一步的研究来支持用户不仅通过评估维度的分类,还要在例如数据集是否可能主要包含凸聚类等方面提供支持。最后,由于验证指标的选择也受到使用算法的影响,下一步将是提出一组适合算法和数据的验证指标。

6 结论

为了解决研究问题1,第3.1章介绍了评估聚类算法的十二个评估维度。该程序成功地应用于34种传统和新型聚类算法。结果,聚类算法的全面比较以表格形式呈现,基于所有评估标准对每个单一聚类算法进行评分。

该表格在GitLab库(https://jhillenbrand.github.io/cluster_table.html)上公开访问,用户可以利用它选择完美匹配其底层数据聚类问题的算法。从给定数据集中提取评估维度有时可能很困难。为此,第四章描述了可以应用于感兴趣数据集的不同函数。结果,用户可以直接从可用算法集合中得出适合所考虑聚类问题的算法列表。

使用无监督方法从数据中提取知识时,聚类结果的验证是一个重要步骤。为了满足研究问题2,帮助用户完成整个过程,而不仅仅是聚类部分,类似于聚类算法的评估维度,还提出了验证指标的维度。本文简要介绍了聚类验证研究,并描述了验证方法的主要类别。给出了一个简短的示例,说明选择并非易事,取决于数据和算法。此外,描述了验证方法的一般属性。然后提出、定义了四个评估维度,并描述了一些示例性指标。

6.1 展望

首先,需要在实践中证明评估维度识别合适算法的程序和有用性。一个合适的验证方法可能是比较不同数据集的聚类结果,一方面使用随机聚类算法,另一方面使用基于第三章比较评估维度推荐的聚类算法。第四章中提出的代码将作为基础。预期结果是基于本文逻辑选择的聚类算法比随机选择的算法表现显著更好。

在第四章中,提出的评估数据集噪声的方法仅在人工数据集上进行了测试。下一步应测试已知的真实世界数据集。此外,目前该方法仅在数据集中引入均匀分布的噪声。可能的改进是引入基于数据集核密度估计的噪声,以创建更真实的噪声。另一个方面可能是不在实际数据分布层面引入噪声,而是在均值距离分布层面引入噪声,以避免在高维空间中进行大量操作。

第五章指出了一些问题,这些问题与评估通常使用不同作者和不同时间的不同资源有关。这些问题应在进一步研究中解决,例如通过执行类似于所提出方法的聚类算法的全面评估,但不是基于现有文献的评论。相反,评估可以依赖于自己的结果,以支持对所有观察到的算法的单一评估标准的共同理解。

最后,所提出的方法始终可以通过引入新的评估维度或将其应用于更广泛的聚类算法和验证概念来受益于未来的研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值