我正在尝试理解这个算法,但无法获得正确的文档和解释。有人可以帮我理解这种聚类算法。
答案 0 :(得分:6)
发布答案,以便对他人有所帮助。
Leader算法是一种增量聚类算法,通常用于聚类大数据集。该算法是顺序依赖的,并且可以基于向算法提供数据集的顺序形成不同的簇。该算法包括以下步骤。
步骤1:将第一个数据项P1分配给群集C1。该数据集将成为集群C1的领导者。
步骤2:现在转到下一个数据项,说P2并计算它与领导者P1的距离。如果P2和引导器P1之间的距离小于用户指定的阈值(t),则将数据点P2分配给该簇(簇C1)。如果领导者P1和数据项P2之间的距离大于用户指定的阈值t,则形成新的聚类C2并将P2分配给该新聚类。 P2将成为集群C2的领导者。
步骤3:对于所有剩余数据项,计算数据点与簇的前导之间的距离。如果数据项与任何领导者之间的距离小于用户指定的阈值,则将数据点分配给该群集。但是,如果数据点与任何群集的领导者之间的距离大于用户指定的阈值,则会创建一个新群集,并将该特定数据点分配给该群集并将其视为群集的领导者。
步骤4:重复步骤3,直到所有数据项都分配到群集。
让理论清晰的例子。
考虑模式位于
A (1, 1),B(1, 2), C(2, 2), D(6, 2), E(7, 2), F(6, 6), G(7, 6)
让数据按A, B, C, D, E, F and G
的顺序处理,用户指定的阈值T
为3
。
A(1, 1)
是第一个处理过的数据项,它已分配给群集C1
,并成为C1
的领导者。
对于第二个点B
,计算它与领导者A
的距离。
使用欧氏距离公式(Distance(a, b)) = √(x - a)² + (y - b)²
),我们将距离设为√(1 - 1)² + (1 - 2)² = 1
,这小于用户指定的阈值3
,因此将B
分配给群集1。
对于第三点C(2, 2)
,计算群集A(1, 1)
的引导C1
与点C
之间的距离。使用欧几里德公式,距离为√(1 - 2)² + (1 - 2)² = 1.41
,小于。{1}
阈值,因此C
也会分配给C1
。
A和D之间的距离(√(1 - 6)²+(1 - 2)²= 5.099)大于用户指定的阈值3,因此创建新的群集并将D分配给群集C2
。 D是该集群的领导者。
对于点E
,计算其距A
(C1
的领导者)和D
(C2
的领导者)的距离。由于Distance(D,E)
小于用户指定的阈值3
,因此会将其分配给群集2。
F与A
(C1的领导者)的距离为7.07
,而D
(C2的领导者)的距离为4
。
这两个距离都高于阈值,因此F
被放入新集群C3
并成为该集群的领导者。
对于G
Distance(A,G)
,Distance(D,G)
和Distance(F,G)
分别为7.81
,6.41
和1
。由于Distance(F,G)
小于用户指定的3
,因此会将其分配给群集3。
可以看出,如果数据是以不同的顺序处理的,那么就是集群
领导者会有所不同 - 甚至集群也可能不同。如果C
之前发生过
A
和B
,然后C
将成为C1
的领导者。如果D
之前发生过,那么
C
和D
之间的距离小于阈值,它可能位于C1
。这个
如果A
是领导者,则可能不会发生。因此,领导者算法依赖于顺序,并且可以基于处理顺序给出不同的结果。