Jarvis-Patrick聚类算法的基本理解
Jarvis Patrick 聚类算法是一种基于图的聚类技术,它用 SNN 相似度替换两点之间的邻近度,其计算方法如 SNN 算法中所述。然后习惯于使用阈值来稀疏这个 SNN 相似性矩阵。
注意:“稀疏化”是一种大幅减少需要处理的数据量的技术。
SNN 算法(共享最近邻相似度):
- 找到所有点的 k 最近邻。
- 如果两个点x和y似乎不在彼此的 k 最近邻之间,那么
- 相似度 ( x , y )<–0
- 别的
- 相似度 ( x , y )<– 共享邻居的数量
- 万一
JARVIS-PATRICK 聚类算法:有 3 个输入,是算法工作所必需的。
- 距离函数,计算任意两个给定点之间的距离。
- ' k ',在形成集群时要注意的最近邻居的数量。
- ' kmin ',要聚类的任何两个给定点的最小共享邻居数。
该算法的工作如下:
- 找到所有点的“k”个最近邻居。
- 如果任何两个点共享多于“t”个邻居,并且这两个点在彼此的“k”最近邻居列表中,则将一对点放在同一个集群中。
- 例如,我们可能会选择大小为 30 的最近邻居列表并将点放在同一个集群中,如果它们共享超过 15 个最近邻居。
示例:二维数据集的 Jarvis-Patrick 聚类。
- 让我们将 Jarvis-Patrick 聚类应用于“鱼”数据集(如下面(a)所示),以搜索集群(如下面(b)所示)。最近邻列表的大小为 20,如果两个点共享至少 10 个点,则它们被放置在同一簇中。不同的集群由不同的标记和不同的阴影显示。 Jarvis-Patrick 将标记为“x”的点归类为噪声。它们大多位于不同密度集群之间的过渡区域内。
- Jarvis-Patrick 聚类算法的存储要求:O (km),因为即使最初也没有必要存储整个相似度矩阵。
- Jarvis-Patrick 聚类的基本时间复杂度:O (m^2),因为创建 k-最近邻列表可能需要计算O (m^2) 的邻近度。
- 然而,对于某些类型的数据,如低维欧几里得数据,例如 kd 树,可以更有效地用于搜索 k 最近邻而无需计算完整的相似度矩阵。这可以将时间复杂度从O (m^2) 降低到O (m log m)。
优势:
- 由于 Jarvis-Patrick 聚类基于 SNN 相似性的概念,因此它擅长处理噪声并可能处理各种大小、形状和密度的聚类。
- 该算法适用于高维数据。
- 该算法在寻找紧密相关的对象的紧密集群方面非常出色。
限制:
- Jarvis-Patrick 聚类将聚类定义为 SNN 相似性图中的连接组件。因此,一堆对象是分成两个簇还是一起留下可能依赖于单个链接。因此,Jarvis-Patrick 聚类有点脆弱,即它可能分裂真正的聚类或加入应该保持分离的聚类,
- 在该算法中,并非所有对象都被聚类。但是,这些对象将添加到现有集群中,并且在某些情况下,不需要完整集群。当与其他聚类算法放在一起时,为参数选择最简单和最佳的值可能具有挑战性。