社区发现
社区发现是一种广义上的聚类,区别于传统聚类的核心是类别与类别之间可以有重叠部分。
在传统的聚类算法,如K-Means,一个元素在结果中只能属于一个类别,但在社区发现算法里,一个元素可以隶属于不同的类别。这种聚类结果更贴近于生活中的场景,一个人可以有多重属性,不同的属性特征会驱使他归到不同的类别里。
本文介绍一种实现社区发现的算法,标签传播算法。
标签传播算法LPA
SLPA算法是对标签传播算法的改进。
基本原理
先了解一下输入的数据:带权无向图。
Q:什么是带权无向图?
A:图是由节点和联结构成,图中的每个节点表示要聚类的目标,节点与节点之间的联结都有一个权重,权重值越大表示这两个节点之间的联系越紧密,或节点之间的相似性更高。
在标签传播算法里每一个节点既是 listener 又是 speaker,按照一定的规则进行“听”和“说”的操作。
这些规则都要遵守一个基本原则,就是传播次数越多的消息越有可能被再次传播。就好比在人群中传播一个信息,被说的最火热和知道的人越多的消息越容易扩散,越容易让更多的人知道,人们也更愿意去传播它。
消息传播的过程就是算法实现的过程,现在用一个例子简单说明一下。
假设有一群人,目标是想要把相似的人分到同一个社区,这些相似的人或许有共同爱好,或许有共同特征,不管怎么定义,都可以用数值量化一个权重,代表人与人之间的亲密关系,权重越大说明两个人越亲密,越相似,越有可能进入到同一个社区,而且一个人可以隶属于多个社区。
最初,每个人都会拿着一个不同于别人的编号,这个编号就是最终所属社区的编号,可以看成每个人都是一个不同于别人的个体,隶属于只有自己的小社区。
我们先把这个编号叫做“标签”,每个标签在最开始被赋予同一个很小的数值,暂时叫它“机会值”,这个数值的意义是标签被再次传播的可能,数值越大越有可能被传播。
随机从一

本文介绍了社区发现的概念,以及标签传播算法LPA在社区发现中的基本原理。LPA算法利用带权无向图,通过节点间的标签传播来形成社区结构。每个节点既是监听者也是发言者,根据权重和机会值选择标签传播,最终确定节点所属的社区。通过多次传播和机会值的累加,高机会值的标签更容易被保留,形成稳定的社区划分。
最低0.47元/天 解锁文章
1445

被折叠的 条评论
为什么被折叠?



