社区发现评价指标Q和NMI讲解代码实现

Posted 白鳯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了社区发现评价指标Q和NMI讲解代码实现相关的知识,希望对你有一定的参考价值。

社区发现评价指标Q和NMI讲解、代码实现

模块度Q

2004年Newman等人提出了模块度Q,之后广泛应用于衡量社区的划分质量,下面公式适用于无向无权的同质网络。若社区内节点的边数越多,Q值越大,相反,Q值越小。
Q = 1 2 m ∑ i , j [ A i j − d i d j 2 m ] δ ( C i , C j ) Q=\\frac{1}{2m}\\sum_{i,j}\\Big[A_{ij}-\\frac{d_id_j}{2m}\\Big]\\delta(C_i,C_j) Q=2m1i,j[Aij2mdidj]δ(Ci,Cj)

m 为 网 络 中 的 边 数 ; A i j 为 邻 接 矩 阵 A 中 的 元 素 , m为网络中的边数;A_{ij}为邻接矩阵A中的元素, mAijA

若 节 点 i , j 相 连 , 则 A i j = 1 , 否 则 A i j = 0 ; 若节点i,j相连,则A_{ij}=1,否则A_{ij}=0; i,jAij=1,Aij=0;

C i 为 节 点 i 所 属 的 社 区 , C j 为 节 点 j 所 属 的 社 区 ; C_i为节点i所属的社区,C_j为节点j所属的社区; CiiCjj

当 i , j 处 于 同 一 社 区 时 , δ ( C i , C j ) = 1 , 否 则 为 0 ; 当i,j处于同一社区时,\\delta(C_i,C_j)=1,否则为0; i,jδ(Ci,Cj)=10

d i 代 表 节 点 i 的 度 ; d_i代表节点i的度; dii

d i d j 2 m 表 示 在 随 机 网 络 中 节 点 i 和 节 点 j 之 间 存 在 边 的 可 能 性 。 \\frac{d_id_j}{2m}表示在随机网络中节点i和节点j之间存在边的可能性。 2mdidjij

模块度Q也可表示为
Q = ∑ c = 1 k [ l c m − ( d c 2 m ) 2 ] Q=\\sum_{c=1}^{k}\\Big[\\frac{l_c}{m}-(\\frac{d_c}{2m})^2\\Big] Q=c=1k[mlc(2mdc)2]

上 式 中 , m 为 网 络 中 的 总 边 数 ; k 为 社 区 个 数 , 上式中,m为网络中的总边数;k为社区个数, mk

l c 为 社 区 c 内 部 的 连 接 边 数 , d c 为 社 区 c 内 所 有 节 点 的 度 之 和 。 l_c为社区c内部的连接边数,d_c为社区c内所有节点的度之和。 lccdcc

其中,Q的取值范围为[-0.5, 1]

注:模块度Q适用于已知真实社区或未知真实社区划分结果的评估


标准化互信息NMI

NMInormalized mutual information标准化互信息,也称为归一化互信息,是目前广泛使用的一种社区划分评价指标,用于度量算法所得到的社区和真实社区划分之间的相似程度,也用于评估聚类结果的相似程度。
N M I ( R , F ) = − 2 ∑ i = 1 C R ∑ j = 1 C F N i j l o g ( N i j S N i ∗ N ∗ j ) ∑ C R N i ∗ l o g ( N i ∗ / S ) + ∑ C F N ∗ j l o g ( N ∗ j / S ) NMI(R,F)=\\frac{-2\\sum_{i=1}^{C_R}\\sum_{j=1}^{C_F}N_{ij}log(\\frac{N_{ij}S}{N_{i*}N_{*j}})}{\\sum^{C_R}N_{i*}log(N_{i*}/S)+\\sum^{C_F}N_{*j}log(N_{*j}/S)} NMI(R,F)=CRNilog(Ni/S)+CFNjlog(Nj/S)2i=1CRj=1CFNijlog(NiNjNijS)

其 中 , 矩 阵 N 中 的 行 表 示 真 实 的 社 区 , 列 表 示 算 法 得 到 的 社 区 ; 其中,矩阵N中的行表示真实的社区,列表示算法得到的社区; N

矩 阵 中 第 i 行 的 元 素 表 示 为 N i ∗ , 第 j 列 的 元 素 表 示 为 N ∗

以上是关于社区发现评价指标Q和NMI讲解代码实现的主要内容,如果未能解决你的问题,请参考以下文章

聚类的外部指标(Purity, ARI, NMI, ACC) 和内部指标(NCC,Entropy,Compactness,Silhouette Index),附代码 (Python 和 Matlab)

聚类算法指标整理

聚类算法指标整理

聚类算法指标整理

如何快速计算生成模型的FIDISsFIDPrecisionRecall等关键评价指标?

如何快速计算生成模型的FIDISsFIDPrecisionRecall等关键评价指标?