我试图理解这个算法,但无法得到适当的文件和解释。有谁能帮我理解这种聚类算法吗?
发布于 2016-05-27 10:33:37
贴出答案,这样对别人有帮助。
领导者算法是一种增量聚类算法,通常用于对大数据集进行聚类。该算法具有阶相关的特点,可以根据顺序形成不同的聚类,为算法提供数据集。该算法由以下步骤组成。
步骤1:将第一个数据项P1分配给集群C1。这个数据集将是集群C1的领头羊。
步骤2:现在移动到下一个数据项,比如P2,并计算它与领导者P1的距离。如果P2与先导P1之间的距离小于用户指定的阈值(t),则将数据点P2分配给该集群(群集C1)。如果先导P1和数据项P2之间的距离大于用户指定的阈值t,则形成一个新的集群C2并将P2分配给这个新集群。P2将是集群C2的领头羊。
Step3:对于所有剩余的数据项,计算数据点与集群领导者之间的距离。如果数据项与任何领先者之间的距离小于用户指定的阈值,则将数据点分配给该集群。但是,如果数据点与集群的任何领导者之间的距离大于用户指定的阈值,则会创建一个新的集群,并将该特定数据点分配给该集群,并将其视为集群的领导者。
步骤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),计算了簇C1的先导A(1, 1)与点C之间的距离。利用欧氏公式,距离为√(1 - 2)² + (1 - 2)² = 1.41,小于阈值,因此C也被分配给C1。A和D之间的距离(√(1-6)2+(1-2)2= 5.099 )大于用户指定的阈值3,因此创建了一个新的集群,并将D分配给集群√。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是领导者,这可能不会发生。因此,领导者算法依赖于阶数,并且可能根据处理顺序给出不同的结果。
https://stackoverflow.com/questions/36928654
复制相似问题