📜  Jarvis-Patrick聚类算法的基本理解

📅  最后修改于: 2022-05-13 01:58:08.793000             🧑  作者: Mango

Jarvis-Patrick聚类算法的基本理解

Jarvis Patrick 聚类算法是一种基于图的聚类技术,它用 SNN 相似度替换两点之间的邻近度,其计算方法如 SNN 算法中所述。然后习惯于使用阈值来稀疏这个 SNN 相似性矩阵。

注意:“稀疏化”是一种大幅减少需要处理的数据量的技术。

SNN 算法(共享最近邻相似度):

  1. 找到所有点的 k 最近邻。
  2. 如果两个点xy似乎不在彼此的 k 最近邻之间,那么
  3. 相似度 ( x , y )<–0
  4. 别的
  5. 相似度 ( x , y )<– 共享邻居的数量
  6. 万一

JARVIS-PATRICK 聚类算法:有 3 个输入,是算法工作所必需的。

  • 距离函数,计算任意两个给定点之间的距离。
  • ' k ',在形成集群时要注意的最近邻居的数量。
  • ' kmin ',要聚类的任何两个给定点的最小共享邻居数。

该算法的工作如下:



  1. 找到所有点的“k”个最近邻居。
  2. 如果任何两个点共享多于“t”个邻居,并且这两个点在彼此的“k”最近邻居列表中,则将一对点放在同一个集群中。
  • 例如,我们可能会选择大小为 30 的最近邻居列表并将点放在同一个集群中,如果它们共享超过 15 个最近邻居。

示例:二维数据集的 Jarvis-Patrick 聚类。

  • 让我们将 Jarvis-Patrick 聚类应用于“鱼”数据集(如下面(a)所示),以搜索集群(如下面(b)所示)。最近邻列表的大小为 20,如果两个点共享至少 10 个点,则它们被放置在同一簇中。不同的集群由不同的标记和不同的阴影显示。 Jarvis-Patrick 将标记为“x”的点归类为噪声。它们大多位于不同密度集群之间的过渡区域内。


二维点集的 Jarvis-Patrick 聚类

  • Jarvis-Patrick 聚类算法的存储要求:O (km),因为即使最初也没有必要存储整个相似度矩阵。
  • Jarvis-Patrick 聚类的基本时间复杂度:O (m^2),因为创建 k-最近邻列表可能需要计算O (m^2) 的邻近度。
  • 然而,对于某些类型的数据,如低维欧几里得数据,例如 kd 树,可以更有效地用于搜索 k 最近邻而无需计算完整的相似度矩阵。这可以将时间复杂度从O (m^2) 降低O (m log m)。

优势:

  1. 由于 Jarvis-Patrick 聚类基于 SNN 相似性的概念,因此它擅长处理噪声并可能处理各种大小、形状和密度的聚类。
  2. 该算法适用于高维数据。
  3. 该算法在寻找紧密相关的对象的紧密集群方面非常出色。

限制:

  1. Jarvis-Patrick 聚类将聚类定义为 SNN 相似性图中的连接组件。因此,一堆对象是分成两个簇还是一起留下可能依赖于单个链接。因此,Jarvis-Patrick 聚类有点脆弱,即它可能分裂真正的聚类或加入应该保持分离的聚类,
  2. 在该算法中,并非所有对象都被聚类。但是,这些对象将添加到现有集群中,并且在某些情况下,不需要完整集群。当与其他聚类算法放在一起时,为参数选择最简单和最佳的值可能具有挑战性。