聚类算法综述

摘要

聚类算法旨在根据数据中的固有模式和相似性将数据组织成组或簇。它们在当今生活中扮演着重要角色,例如在市场营销和电子商务、医疗保健、数据组织和分析以及社交媒体中。现有众多聚类算法,并且不断有新的算法被引入。每个算法都有其自身的优点和缺点,截至目前,还没有适用于所有任务的通用算法。在这项工作中,我们分析了现有的聚类算法,并从五个不同维度对主流算法进行分类:基本原理和特征、数据点分配到簇、数据集容量、预定义簇数量和应用领域。这种分类有助于研究人员从不同角度理解聚类算法,并帮助他们识别适合解决特定任务的算法。最后,我们讨论了聚类算法的当前趋势和未来可能的发展方向。我们还识别并讨论了该领域中的开放挑战和未解决的问题。

1 引言

随着数字技术的快速转型,获取信息已成为日常生活中更为普遍的方面。企业和个人现在可以访问大量信息,包括互联网上的数十亿文档、视频和音频文件。大多数企业在一个互联的数据网络中运作,这些数据链接到多个信息源,能够提供大量数据点。然而,尽管我们的计算能力在迅速增长,但数据的庞大体量常常挑战我们将分散的数据转化为有用信息、实用知识和可操作见解的能力。一种成熟的解决方案是利用机器学习,特别是聚类方法。聚类算法是机器学习算法,旨在根据特定标准将相似的数据点分组,从而揭示数据集中的自然结构或模式。其主要目的是将数据分成子组或簇,其中同一组内的项比其他组的项更为相似。聚类方法有助于信息检索、推荐系统和主题发现等多个领域的进步。

聚类算法在日常生活中无处不在。它们用于垃圾邮件分类、推荐系统、针对性营销的客户细分、基于视觉相似性组织图像的图像处理等。聚类算法不仅可以聚类基于文本的数据,还适用于音频、视频和图像。音频聚类算法使用声学特征对文件进行分组,可用于如流派识别等任务。聚类视频数据通过按视觉或主题相似性组织内容,促进推荐和摘要等任务。在图像分析中,聚类对于分割和基于内容的检索任务至关重要。聚类算法还作为检测异常的方法,无论是在网络流量、金融交易还是医疗记录中。它们的多功能性突显了其在从各种数据中提取模式和见解方面的重要性。

根据学习过程的性质和标记数据的可用性,聚类算法主要分为两类:

  • 半监督学习:此类别为每个数据样本提供一个带有已知簇标签的训练数据集。算法观察训练数据集中的模式,然后学习将新数据点分配到簇中。例如受限K均值(Constrained K-Means)[1],半监督模糊C均值(Semi-Supervised Fuzzy C-Means, SSFCM)[2]。
  • 无监督学习:在此类别中,不提供标记数据集。算法识别数据中的模式和结构,然后基于特征中的内在相似性将相似的数据样本分组,而无需事先了解分组情况。通常,整个数据集中的簇总数是未知的。此类别中的算法示例包括K均值(K-Means)[3, 4],带噪声应用的基于密度的空间聚类(Density-Based Spatial Clustering of Applications with Noise, DBSCAN)[5],和模糊C均值(Fuzzy C-Means, FCM)[6]。可以采用多种方法来确定合适的值,例如肘部法(elbow method)、轮廓系数(silhouette score)、间隙统计(gap statistics),如第3.4节所讨论。

随着新应用的出现,对能够有效处理不同类型数据和场景的聚类算法的需求不断增长。同时,随着大数据和复杂数据结构(如高维、异构数据和大规模数据集)的兴起,需要适应性强的聚类算法来有效处理这些不同类型的数据。因此,聚类方法不断发展,因此全面调查和回顾现有文献以了解最新发展变得至关重要。几篇重要的综述对此做出了显著贡献。Rui Xu和Wunsch, D. [7]研究了计算机科学、机器学习和统计数据集的聚类技术。他们展示了如何在几个基准数据集上使用这些算法:旅行商问题和生物信息学——一个相对较新的主题,受到广泛关注。他们还讨论了簇验证、接近度测量和几个相关主题。Xu和Tian [8]在2015年进行了全面的聚类算法综述,涵盖了多种技术。作者根据其基本原理、特征和应用对这些算法进行了分类。综述包括对所有讨论算法的详细和全面的比较。Ezugwu等人[9]从更实际的角度提供了对各种领域中传统和前沿聚类算法的最新、系统和深入的分析。它涵盖了聚类在大数据、人工智能和机器人等多个领域的应用。该综述还重点关注聚类在教育、市场营销、医学、生物学和生物信息学等多个学科中所起的重要作用。上述三篇论文是自2000年以来关于聚类算法的最全面和被高度引用的研究。分别于2005年、2015年和2022年发表,这些工作对该领域做出了重大贡献。

除了这些开创性工作,其他一些重要作品主要关注聚类中的特定分类或应用。Bora等人[10]对模糊聚类算法和硬聚类算法进行了比较研究。重点是评估和对比这些聚类算法的性能,提供其优缺点的见解。Sisodia等人[11]探索了数据挖掘领域的各种聚类算法,强调了基本方面,如聚类基础、要求、分类、挑战及这些算法的应用领域。Rodriguez等人[12]提供了对9种著名聚类算法的全面比较分析。作者通过系统评估评估了这些算法的性能和特征,提供了对其优缺点的见解。这项研究有助于理解聚类方法,并根据特定应用需求做出明智选择。

在这项工作中,我们对现有的聚类算法文献进行了全面总结,并从四个不同的角度对其进行分类,以帮助用户有效识别适合其特定任务的算法。此外,我们讨论了当前的研究现状,并突出未来聚类技术的发展趋势。

2 方法

在本节中,我们描述了综述的方法,详细说明了用于收集出版物的关键词以及它们的筛选过程。我们定义了一组与我们主题相关的关键词,如“聚类”、“聚类算法”、“聚类方法”、“共识聚类”、“聚类技术”。创建关键词列表后,我们在三个信誉良好的学术数据库中进行了搜索,包括Google Scholar、arXiv和Scopus。我们使用布尔运算符(AND, OR)和截断来优化搜索查询。我们选择Google Scholar是因为它包括尚未正式发表的论文,如预印本。我们观察到,一些预印本出版物由于对研究领域的重大贡献,在早期阶段就获得了许多引用。然而,由于某些期刊在正式发表前需要较长的处理时间,这些出版物可能会长时间保持预印本状态。

我们根据以下标准筛选收集到的出版物:用英语撰写、在过去五年内发表、并且专注于新颖的聚类技术。此外,我们删除了与聚类算法不直接相关的重复论文,以确保剩余内容包括算法介绍、算法技术改进文章和应用文章。接下来,我们审查了标题、摘要和关键词,进一步筛选出版物以缩小选择范围。一旦我们集中在所选出版物的全文上,我们的目标是识别算法的基本原理、算法在其应用中的使用、实验程序和关键发现。我们考虑了实验设计、样本量和统计方法等方面,以评估结果的可靠性。最后,结果(在下一节中展示)综合了文献中发现的模式和趋势。

3 结果

在本节中,我们分析了聚类算法的基本特征和方法,并根据这些原理对算法进行分类,这也是目前最公认的分类方法。随后,我们从不同维度对算法进行分类,例如算法处理不同数据集大小的能力、数据点分配到簇的方式、预定义簇数量的要求和应用领域。此分类旨在指导用户根据特定的聚类任务选择合适的算法。算法分类系统的结构在图1中直观地展示。

3.1 根据基本原理和特征对算法进行分类

根据分组数据的基本特征和方法,聚类算法可以分为以下五个不同的子集[13–15](总结在表1中):

图1 聚类算法分类结构,涵盖五个维度

  • 基于划分的聚类(例如,图2):基于划分的聚类算法将数据划分为不重叠的簇。这些聚类算法的基本思想是将数据点的中心视为相应簇的中心,这通常具有较低的时间复杂度和较高的计算效率。然而,它们不适用于非凸数据,对离群点敏感,容易陷入局部最优,并且需要预定义簇的数量,这可能会影响聚类结果的性能。

图2 基于划分的聚类算法示例:左侧表示原始数据,右侧显示应用K-Means聚类算法后的结果簇。每个数据样本仅被分类到一个簇中。

  • 基于层次的聚类(例如,图3):层次聚类的唯一概念在于树状图的构建和分析。树状图是一种包含系统中所有数据点关系的树状结构。无需指定预定义的簇数量。这些算法可以处理各种形状和大小的簇。一旦构建了树状图,通过结构的水平切割可以在系统的最高层次定义单个簇。此切割下方的每个子分支代表一个独立的簇,将簇成员分配给每个数据样本。然而,层次聚类需要大量计算,特别是对于大型数据集,其时间复杂度通常高于其他聚类方法。这种结构对噪声和离群点敏感,如果处理不当,可能导致次优的簇。

图3 层次聚类算法示意图:左侧显示了根据数据集中样本之间的关系构建的树状图,右侧展示了基于树状图的结果簇。

  • 基于密度的聚类(例如,图4):基于密度的算法旨在识别特征空间中高维区域的簇,同时将噪声点检测为离群点。这些算法具有高效的聚类效率,对参数敏感,适用于任意形状的数据集。在空间数据密度不均匀的情况下,聚类结果的质量会下降。此外,处理大型数据集时需要更高的计算资源。

图4 基于密度的聚类算法示意图:左侧表示原始数据,右侧显示应用算法后的聚类结果。图中有一些离群点,用灰点表示。

  • 基于网格的聚类(例如,图5):这些聚类算法的基本原理是将初始数据空间划分为预定大小的网格结构进行聚类。尽管具有低时间复杂度、高可扩展性,并且兼容并行处理和增量更新,这些算法仍需考虑一些因素。聚类结果对网格大小非常敏感,追求更高的计算效率可能会以簇质量和整体聚类准确性为代价。

图5 基于网格的聚类算法示意图:左图表示原始数据,右图是网格算法示意图。网格可能允许任意形状或适应数据特征。簇的识别通常通过定义基于网格单元占据情况的规则或标准来完成。

  • 基于模型的聚类(例如,图6):基本思想是为每个簇选择一个特定模型,并找到该模型的最佳拟合。基于模型的聚类算法假设数据点是从概率模型生成的,并试图识别最合适的模型来解释数据分布。多样且成熟的模型提供了充分描述数据的方法,每个模型都有其独特的特性,在某些特定领域可能提供显著的优势。然而,总体而言,这些模型的时间复杂度相对较高,前提并不完全正确,并且聚类结果依赖于所选模型的参数。

图6 基于模型的聚类算法示意图。左侧表示原始数据,右侧显示应用高斯混合模型(GMM)后的聚类结果。由于不同的模型选择、参数设置和其他因素,实际的聚类结果可能会有所不同。

3.2 按数据点分配到簇的算法分类:单一 vs. 多重

聚类算法可以根据它们如何将数据点分配到簇中进行广泛分类。这导致了两种主要分类:硬聚类,其中每个数据点仅与一个簇相关联;软聚类,其中数据点可以同时与多个簇相关联。以下是每个类别中的一些经典算法。

  • 硬聚类:K-Means、层次聚类(凝聚)、DBSCAN、OPTICS、K-Medoids、谱聚类(K路归一化切割)[39]、BIRCH。
  • 软聚类:模糊C均值(FCM)、高斯混合模型(GMM)、可能性C均值(PCM)[40]、可能性模糊C均值(PFCM)[41]、核化模糊C均值(KFCM)[42]、层次模糊聚类(HFC)[43]。

3.3 按数据集容量分类的算法

算法在处理数据集大小的能力上有所不同,在本节中,我们根据其处理能力将所有算法分为三类。当然,定义什么是小型、中型或大型数据集在某种程度上是主观的,取决于具体任务的上下文。基于对Python开源库的概述和现有工作,我们根据处理能力将算法分为三组,如表2所示。

  • 小型数据集:通常,小型数据集可能包含几百到几千个实例。这是一个可以轻松加载到内存中并处理而不需要显著计算资源的规模。
  • 中型数据集:中型数据集的范围可能从几千到数万个实例。与小型数据集相比,它可能需要更复杂的算法和计算资源,但仍然是可管理的。
  • 大型数据集:大型数据集通常包含数十万到数百万(或更多)实例。处理此类数据集通常需要专门的算法、分布式计算或并行处理,因数据量庞大。

3.4 按预定义簇数分类的算法

并非所有的聚类算法都需要预定义簇的数量。主要有两种类型的聚类算法:

  • 硬聚类:此类别中的算法(如K-Means)要求用户事先指定簇的数量。
  • 软聚类或层次聚类:使用层次聚类或高斯混合模型(GMM)等算法时,不需要提前指定簇的数量。聚类可以在不同的粒度或簇数量级别上进行,您可以在事后选择使用哪种级别。

硬聚类中最大的挑战是如何确定最优的簇数。聚类结果可以根据使用的簇数、在数据中发现的模式粒度以及解决方案的实用性进行不同的解释。作为聚类过程中的关键步骤,选择正确的簇数量也会影响分析得出的见解以及聚类组在实际情况中的有用性。有一些方法可以用来确定最优的簇数。

  • 肘部法:运行聚类算法以获取一系列簇数,并将簇内平方和(惯性)与簇数绘制成图。寻找图中的“肘部”,即惯性减少的速度减慢的点。这个点通常被认为是最优的簇数。有多篇文献使用肘部法来确定最优簇数[46–48]。
  • 轮廓系数:指一种解释和验证数据簇内一致性的方法。轮廓系数测量一个对象与其自身簇的相似度与其与其他簇的相似度。选择使轮廓系数最大的簇数。有多篇文献使用轮廓系数来评估最优簇数[49–51]。
  • 间隙统计[52]:将数据集上的聚类性能与随机数据集(或较少簇数)上的性能进行比较。最优簇数应具有比随机聚类更大的性能差距。有一些文献使用间隙统计来确定簇数[53–55]。
  • 层次聚类中的树状图[56]:如果任务适用于层次聚类算法,可视化树状图并寻找切割它以得到合理数量的独立簇的级别。有一些文献使用树状图进行聚类[57, 58]。

3.5 按应用领域分类的算法

在本节中,我们将比较各个主要应用领域中主要使用的聚类算法,如表3所示。在数据挖掘和信息检索等领域,K-Means和DBSCAN等算法因其处理大型数据集的效率而被频繁使用。相比之下,图像分析和生物信息学等领域通常依赖于谱聚类和层次聚类等算法,这些算法更适合这些领域的复杂模式和结构。值得注意的是,像AutoClass[59]和Superpixel[60]这样的新算法在特定复杂场景中表现良好。

4 评价指标

虽然大多数数据集缺乏聚类算法的真实标签,但仍有方法可以评估聚类质量。评价指标对于指导聚类算法的开发、选择和优化至关重要,使过程更加系统和有依据。在聚类过程中,数据样本会转化为高维空间中的向量。这些向量之间的距离复杂地反映了整体相似性,包含了数据样本中的所有相关特征。因此,“点之间的距离”在形成簇时至关重要,并作为评估聚类性能的常见标准。这一概念指的是个体数据点之间的相异或相似的数值度量,通常基于数据特征计算。典型的度量包括欧几里得距离、曼哈顿距离或文本数据的余弦相似度。

图7展示了K-Means聚类的一个示例,展示了数据点之间的距离。图中描绘了两种类型的距离:一种表示簇内数据样本之间的距离(蓝色和橙色虚线),另一种表示不同簇中心之间的距离(绿色虚线)。簇内数据点之间的距离明显小于数据点与其他簇中心之间的距离。

图7 K-Means聚类示例,包含两个簇,展示了数据点之间的两种不同距离类型。

通过强调评价指标的重要性和点之间距离的作用,评估和改进聚类算法的过程变得更加稳健和有意义。评价指标分为内部和外部类型。内部指标仅基于固有数据信息评估簇的质量,关注簇内数据样本的紧密性(凝聚力)和簇之间的独特性(分离度)。示例包括轮廓系数、Davies-Bouldin指数、Dunn指数和惯性(用于K-Means)。外部指标需要真实类别标签,通过使用精度、召回率和互信息来评估与已知标签的一致性。例如调整兰德指数(ARI)、归一化互信息(NMI)、Fowlkes-Mallows指数、精度、召回率和F1分数。内部指标专注于内在属性,而外部指标依赖于真实标签评估算法准确性。选择取决于数据的可用性和聚类目标。

4.1 内部评价指标

聚类算法的内部评价指标可以仅基于数据的内在特性和聚类算法的结果评估簇的质量,而不使用任何外部信息,如真实标签。这些指标可以定量地测量聚类质量的各个方面,如紧密性、分离度和方差。在选择和解释这些指标时,考虑数据的具体特性和聚类任务的目标至关重要。

4.1.1 轮廓系数

轮廓系数是一种广泛使用的内部评价指标,用于评估无监督聚类算法产生的簇的质量。它衡量簇的分离程度,并提供聚类解决方案适当性的指示。单个数据点的轮廓系数计算为数据点与同簇其他点的平均距离(a)与数据点与最近邻簇点的平均距离(b)之差,除以a和b中的最大值。对于数据点i,公式为:

S ( i ) = b ( i ) − a ( i ) max ⁡ { a ( i ) , b ( i ) } S(i) = \frac{b(i) - a(i)}{\max \{a(i), b(i)\}} S(i)=max{a(i),b(i)}b(i)a(i)

轮廓系数范围从-1到1,值越高表示簇定义越好。接近1的分数表示数据点与其自身簇匹配良好,与邻近簇匹配较差,表明聚类效果好。接近0的轮廓系数表示簇之间重叠。接近-1的轮廓系数表示数据点可能分配到了错误的簇。聚类解决方案的总体轮廓系数是所有数据点轮廓系数的平均值。

4.1.2 Davies-Bouldin指数

Davies-Bouldin指数是一种用于评估聚类解决方案质量的指标。它衡量簇的紧密性和分离度,旨在找到彼此分离良好的簇。Davies-Bouldin指数的公式为:

D B I = 1 n c ∑ i = 1 n c max ⁡ i ≠ j ( avg-radius i + avg-radius j distance ( c i , c j ) ) DBI = \frac{1}{n_c} \sum_{i=1}^{n_c} \max_{i \neq j} \left( \frac{\text{avg-radius}_i + \text{avg-radius}_j}{\text{distance}(c_i, c_j)} \right) DBI=nc1i=1nci=jmax(distance(ci,cj)avg-radiusi+avg-radiusj)

其中,$ n_c $ 是簇的数量,$ c_i $ 和 $ c_j $ 是簇i和簇j的质心,$ \text{avg-radius}_i $ 和 $ \text{avg-radius}_j $ 是从质心到簇i和簇j中点的平均距离,$ \text{distance}(c_i, c_j) $ 是簇i和簇j质心之间的距离。

Davies-Bouldin指数基于欧几里得距离,假设簇具有球形形状,在处理不规则形状的簇时可能表现不佳。此外,公式假设簇大小相等,因此可能不适用于簇大小不平衡的数据集。如果聚类算法产生不同数量的簇,或者簇的真实数量未知,可能表现不佳。尽管存在这些限制,当假设与数据特征和聚类分析目标一致时,Davies-Bouldin指数仍然是一个有用的工具。

4.1.3 Dunn指数

Dunn指数关注簇的紧密性和分离度。它旨在在最小化簇内直径(点之间的最大距离)和最大化簇中心之间的距离之间找到平衡。该指数定义为最小簇间距离与最大簇内直径的比率。

D I = min ⁡ i ≠ j distance ( c i , c j ) max ⁡ 1 ≤ k ≤ n diameter ( C k ) DI = \frac{\min_{i \neq j} \text{distance}(c_i, c_j)}{\max_{1 \leq k \leq n} \text{diameter}(C_k)} DI=max1kndiameter(Ck)mini=jdistance(ci,cj)

其中,$ n $ 是簇的数量,$ C_i $ 和 $ C_j $ 是簇,$ \text{diameter}(C_i) $ 是簇 $ C_i $ 内的最大距离,$ \text{distance}(c_i, c_j) $ 是簇中心 $ c_i $ 和 $ c_j $ 之间的距离。

Dunn指数对异常值敏感,并且高度依赖于距离度量。它假设簇是球形的,因此如果簇具有非球形形状,可能无法准确反映簇之间的真实分离。Dunn指数产生数值结果,但其作为“好”或“坏”的解释是主观的,并且在聚类问题中取决于具体情境。尽管存在这些缺点,Dunn指数在谨慎使用并结合其他评价指标时,仍然是一个有价值的工具。

上述三种是常用的评价指标,还有其他不太流行的评价指标,例如Calinski-Harabasz指数[61],它评估簇间方差与簇内方差的比率,值越高表示簇定义越好。惯性(簇内平方和)[62],它测量数据点与其簇中心之间的平方距离之和,惯性越低表示簇越密集、越紧凑。间隙统计[52],它将数据集的聚类质量与参考随机数据集的聚类质量进行比较,间隙越大表示聚类效果越好。CH指数(Cophenetic相关系数)[25],它测量树状图中Cophenetic距离与原始距离之间的相关性,CH指数越高表示聚类效果越好。

4.2 外部评价指标(当真实标签可用时)

4.2.1 调整兰德指数 (ARI)

调整兰德指数 (ARI) 是聚类分析和机器学习中广泛使用的评价指标,用于评估两个聚类解决方案之间的相似性。它测量真实类别标签和聚类算法分配的标签之间的一致性,并校正了随机因素的影响。ARI 的公式如下:

ARI = RI − Expected RI max ⁡ ( RI ) − Expected RI \text{ARI} = \frac{\text{RI} - \text{Expected RI}}{\max(\text{RI}) - \text{Expected RI}} ARI=max(RI)Expected RIRIExpected RI

其中,RI 是兰德指数,测量真实聚类和预测聚类之间的一致性(包括同簇和不同簇的情况)。Expected RI 是在随机聚类假设下的期望兰德指数,表示随机聚类情况下的 RI 期望值。分母中的 max(RI) 表示兰德指数的最大可能值,将 ARI 归一化到 [-1, 1] 范围内。

ARI 的局限性如下:

  • 对不平衡簇大小的敏感性:ARI 对不平衡簇大小敏感。如果不同簇中的样本数量差异显著,ARI 可能偏向于较大的簇。

  • 依赖簇数量:ARI 假设知道真实的簇数量。如果真实簇数量未知或聚类算法产生不同数量的簇,ARI 可能无法提供准确的评价。

  • 随机聚类假设:ARI 的随机校正假设簇分配是随机进行的。在某些情况下,特别是对于某些聚类算法或数据类型,这一假设可能不成立。

  • 仅限于成对比较:ARI 设计用于成对聚类比较,无法提供关于多个簇整体结构的信息。它可能无法捕捉数据中的更复杂关系。

  • 依赖真实标签:ARI 需要真实类别标签,在无监督学习场景中可能无法获得。在这种情况下,可能需要使用其他评价指标。

尽管存在这些局限性,ARI 仍然是广泛使用且易于解释的聚类评价指标。在具体聚类任务中考虑这些缺点,并相应选择评价指标是很重要的。

4.2.2 归一化互信息 (NMI)

归一化互信息 (NMI) 提供了一个定量指标,用于衡量真实类别标签和聚类算法分配的标签之间的一致性,考虑了精度和召回率,提供了对聚类解决方案质量的平衡视角。

NMI 的公式如下:

NMI = 2 ⋅ I ( Y ; C ) H ( Y ) + H ( C ) \text{NMI} = \frac{2 \cdot I(Y ; C)}{H(Y) + H(C)} NMI=H(Y)+H(C)2I(Y;C)

其中,Y 是真实类别标签集合,C 是算法分配的簇标签集合,I(Y ; C) 是 Y 和 C 之间的互信息,H(Y) 和 H© 分别是 Y 和 C 的熵。

NMI 的取值范围从 0 到 1,0 表示没有互信息,1 表示真实标签和预测标签之间完全一致。较高的 NMI 表示在捕捉底层类别结构方面更好的聚类解决方案。NMI 是大多数聚类解决方案中常用的指标,因为它在聚类评价中同时考虑了同质性和完整性,并且归一化有助于在不同大小的数据集之间进行比较。

NMI 的局限性在于它假设每个簇对应一个单一类别,这在实际数据中可能并不总是成立。

5 讨论

近年来,聚类算法研究的重点从单纯改进底层算法转向在特定领域的应用。这一转变是由于各个领域中数据挑战的多样性和复杂性日益受到重视。研究人员现在积极探索如何有效地应用和调整聚类算法,以满足生物信息学、医疗保健、自然语言处理、图像和视频处理、社交网络分析、网络安全和异常检测等领域的独特需求。研究社区集中精力定制聚类解决方案,以适应特定应用环境,从而在领域特定的聚类方法应用中取得了显著进展。我们观察到,COVID-19 大流行导致 2021 年至 2022 年间医疗影像和医疗保健中聚类算法的使用显著增加。在深度学习技术迅速发展的背景下,聚类算法的发展趋势愈发明显。特别是,越来越多地将神经网络等深度学习技术整合到聚类算法中,以提高其性能,特别是在处理高维和复杂数据时。K-Means 是最古老和最知名的聚类算法之一,因其简单性和在基于相似性划分数据方面的有效性而广受欢迎。尽管历史悠久,K-Means 仍然在各种应用中广泛使用,并在聚类技术文献中占有一席之地。它常作为基准方法与新提出的方法进行比较,并且不断有改进其性能的努力。另一个值得注意的趋势是混合聚类方法的日益流行。这些方法结合了不同的聚类算法或将聚类与其他机器学习技术相结合,旨在利用多种方法的优势以提高性能。

当前,聚类算法面临的主要挑战是确定最佳簇数。现有技术生成的组通常表现出模糊的簇,即数据被分组到未知原因的未指定类别中。如果只有一个组存在,可以将其分类为异常值,但有时多个组仍未被识别。这突显了算法分组数据与人类对这些组的主观解释之间的潜在差异。在最近的学术文献中,几种不同的聚类方法被频繁使用,各有其优点和应用。因此,聚类方法的选择高度依赖于任务。没有一种方法能够在所有类型的数据和应用中普遍胜出。我们的综述从多个角度对算法进行分类,可以帮助用户选择适合特定应用的聚类算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/445.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【网络监控加速设备】国产化一站式高性能数据处理平台(海光CPU+复旦微FPGA)

随着网络流量的飞速增长,数据的监控与管理需求日益加剧。针对这一痛点,一款集协议检测、数据监测、报文转发和结果展示于一体的网络监控加速设备,设备百分之百国产化也体现了完全自主可控。设备不仅具备丰富的网络监控功能,还支持…

确保企业架构与业务的一致性与合规性:数字化转型中的关键要素与战略实施

在现代企业的数字化转型过程中,确保企业架构(Enterprise Architecture, EA)与企业业务的紧密一致性与合规性至关重要。无论是在战略层面还是运营层面,EA都为企业的未来发展提供了清晰的蓝图,确保企业在应对复杂的业务环…

指数分布的原理和应用

本文介绍指数分布,及其推导原理。 Ref: 指数分布 开始之前,先看个概率密度函数的小问题: 问题描述:你于上午10点到达车站,车在10点到10:30 之间到达的时刻 X 的概率密度函数如图: 则使用分段积分&#xff0…

HTML 基础标签——链接标签 <a> 和 <iframe>

文章目录 1. `<a>` 标签属性详细说明示例2. `<iframe>` 标签属性详细说明示例注意事项总结链接标签在HTML中是实现网页导航的重要工具,允许用户从一个页面跳转到另一个页面或嵌入外部内容。主要的链接标签包括 <a> 标签和<iframe> 标签。本文将深入探…

Windows部署rabbitmq

本次安装环境&#xff1a; 系统&#xff1a;Windows 11 软件建议版本&#xff1a; erlang OPT 26.0.2rabbitmq 3.12.4 一、下载 1.1 下载erlang 官网下载地址&#xff1a; 1.2 下载rabbitmq 官网下载地址&#xff1a; 建议使用解压版&#xff0c;安装版可能会在安装软件…

自适应对话式团队构建,提升语言模型代理的复杂任务解决能力

人工智能咨询培训老师叶梓 转载标明出处 如何有效利用多个大模型&#xff08;LLM&#xff09;代理解决复杂任务一直是一个研究热点。由美国南加州大学、宾夕法尼亚州立大学、华盛顿大学、早稻田大学和谷歌DeepMind的研究人员联合提出了一种新的解决方案——自适应团队构建&…

“游戏人”也能拿诺贝尔奖!

“游戏人”也能拿诺贝尔奖&#xff01; 点击蓝链领取游戏开发教程 2024年度的诺贝尔奖&#xff0c;堪称AI深刻影响传统科学领域的一次生动展现。在这一年里&#xff0c;备受瞩目的诺贝尔物理学奖与诺贝尔化学奖两大核心奖项&#xff0c;均颁给了在AI领域做出杰出贡献的研究者…

获取环境变量 getenv小心有坑!

一、背景 在工作中&#xff0c;所做的项目需要涉及两个不同语言( P/Invoke)的信息传递。最后选定了一种环境变量的传递方式&#xff0c;但这也遇到了getenv带来的大坑&#xff01; 1.1 问题现象 我们在C#的exe主流程中通过DllImport&#xff0c;对环境变量进行了设置。随后我…

告别登录,这款插件直接复制CSDN内容,真棒!

前言 我们在开发过程中&#xff0c;肯定会遇到这样或者那样的问题&#xff0c;这时候&#xff0c;我们想到最多的就是用搜索引擎去搜索各种资料&#xff0c;查看各种博客。以前&#xff0c;查看博客是很方便的&#xff0c;不过后来&#xff0c;像CSDN的&#xff0c;就是必须要…

为Meta Spark准备3D模型

有许多工具可以帮助你为 Meta Spark Studio 创建 3D 对象&#xff0c;包括 Cinema4D、Blender 和 3ds Max。你还可以使用 Meta Spark Toolkit 优化 Blender 对象。 在本指南中&#xff0c;我们将介绍正确的设置&#xff0c;以便你可以成功地为 Meta Spark Studio 准备对象&…

poi处理excel文档时,与lombok的@Accessors(chain = true)注解冲突

poi在反射封装数据时会判断set方法的返回是不是Void&#xff0c;加上Accessors会造成NoSuchMethodException异常

bash: git: command not found

在windows上重新安装Git之后&#xff0c;遇到cmd可以使用git命令&#xff0c;但是git bash中使用的git命令的时候&#xff0c;会提示&#xff1a; $ git bash: git: command not found 解决办法 找到用户目录下的.bash_profile和.bashrc文件&#xff0c;编辑打开&#xff0c;找…

DFA算法实现敏感词过滤

DFA算法实现敏感词过滤 需求&#xff1a;检测一段文本中是否含有敏感词。 比如检测一段文本中是否含有&#xff1a;“滚蛋”&#xff0c;“滚蛋吧你”&#xff0c;“有病”&#xff0c; 可使用的方法有&#xff1a; 遍历敏感词&#xff0c;判断文本中是否含有这个敏感词。 …

Java 正则表达式一口气讲完!b( ̄▽ ̄)d

Java 正则表达式元字符 Java正则表达式教程 - Java正则表达式元字符 元字符是在Java正则表达式中具有特殊含义的字符。 Java中的正则表达式支持的元字符如下: ( ) [ ] { } \ ^ $ | ? * . < > - ! 字符类 元字符 [和] 指定正则表达式中的字符类。 字符类是一组字…

(实战)WebApi第10讲:Swagger配置、RESTful与路由重载

一、Swagger配置 1、导入SwashBuckle.AspNetCore包 2、在.NET Core 5框架里的startup.cs文件里配置swagger 3、在.NET Core 6框架里的Program.cs文件里配置swagger 二、RESTful风格&#xff1a;路由重载&#xff0c;HttpGet()括号中加参数 &#xff08;1&#xff09;原则&…

【进阶sql】复杂sql收集及解析【mysql】

开发时会出现&#xff0c;必须写一些较复杂sql的场景 可能是给会sql的客户 提供一些统计sql 或是临时需要统计数据信息但是 开发一个统计功能有来不及的情况 也可能是报表系统组件 只支持 sql统计的情况 特地记录下这些sql 作为积累 substring 截取查询出的字符串&#xff…

心情追忆-AI分析报错

之前我独自开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。 项目需求来源->设计->前端(小程序)->后端->部署均由我一人完成. 上线一个月. 通过群聊分享等. 用户量也有了100多人. 我希望持续发展 由于项目的开发与测试…

Leetcode21:合并两个有效链表

原题地址&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示…

【Python · Pytorch】人工神经网络 ANN(中)

【Python Pytorch】人工神经网络 ANN&#xff08;中&#xff09; 6. 反向传播6.1 梯度下降法6.1.1 线搜索方法6.1.2 微分 & 导数6.1.3 偏导数6.1.4 Jacobian矩阵6.1.5 梯度 & 梯度下降法按维度介绍 6.1.6 面临挑战平原现象 & 振荡现象局部最小值鞍点梯度消失梯度爆…

时间序列预测(十)——长短期记忆网络(LSTM)

目录 一、LSTM结构 二、LSTM 核心思想 三、LSTM分步演练 &#xff08;一&#xff09;初始化 1、权重和偏置初始化 2、初始细胞状态和隐藏状态初始化 &#xff08;二&#xff09;前向传播 1、遗忘门计算&#xff08;决定从上一时刻隐状态中丢弃多少信息&#xff09; 2、…