社区发现评价指标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∑[Aij−2mdidj]δ(Ci,Cj)
m 为 网 络 中 的 边 数 ; A i j 为 邻 接 矩 阵 A 中 的 元 素 , m为网络中的边数;A_{ij}为邻接矩阵A中的元素, m为网络中的边数;Aij为邻接矩阵A中的元素,
若 节 点 i , j 相 连 , 则 A i j = 1 , 否 则 A i j = 0 ; 若节点i,j相连,则A_{ij}=1,否则A_{ij}=0; 若节点i,j相连,则Aij=1,否则Aij=0;
C i 为 节 点 i 所 属 的 社 区 , C j 为 节 点 j 所 属 的 社 区 ; C_i为节点i所属的社区,C_j为节点j所属的社区; Ci为节点i所属的社区,Cj为节点j所属的社区;
当 i , j 处 于 同 一 社 区 时 , δ ( C i , C j ) = 1 , 否 则 为 0 ; 当i,j处于同一社区时,\\delta(C_i,C_j)=1,否则为0; 当i,j处于同一社区时,δ(Ci,Cj)=1,否则为0;
d i 代 表 节 点 i 的 度 ; d_i代表节点i的度; di代表节点i的度;
d i d j 2 m 表 示 在 随 机 网 络 中 节 点 i 和 节 点 j 之 间 存 在 边 的 可 能 性 。 \\frac{d_id_j}{2m}表示在随机网络中节点i和节点j之间存在边的可能性。 2mdidj表示在随机网络中节点i和节点j之间存在边的可能性。
模块度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=1∑k[mlc−(2mdc)2]
上 式 中 , m 为 网 络 中 的 总 边 数 ; k 为 社 区 个 数 , 上式中,m为网络中的总边数;k为社区个数, 上式中,m为网络中的总边数;k为社区个数,
l c 为 社 区 c 内 部 的 连 接 边 数 , d c 为 社 区 c 内 所 有 节 点 的 度 之 和 。 l_c为社区c内部的连接边数,d_c为社区c内所有节点的度之和。 lc为社区c内部的连接边数,dc为社区c内所有节点的度之和。
其中,Q的取值范围为[-0.5, 1]
。
注:模块度Q适用于已知真实社区或未知真实社区划分结果的评估
标准化互信息NMI
NMI(normalized 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)=∑CRNi∗log(Ni∗/S)+∑CFN∗jlog(N∗j/S)−2∑i=1CR∑j=1CFNijlog(Ni∗N∗jNijS)
其 中 , 矩 阵 N 中 的 行 表 示 真 实 的 社 区 , 列 表 示 算 法 得 到 的 社 区 ; 其中,矩阵N中的行表示真实的社区,列表示算法得到的社区; 其中,矩阵N中的行表示真实的社区,列表示算法得到的社区;
矩
阵
中
第
i
行
的
元
素
表
示
为
N
i
∗
,
第
j
列
的
元
素
表
示
为
N
∗
以上是关于社区发现评价指标Q和NMI讲解代码实现的主要内容,如果未能解决你的问题,请参考以下文章 聚类的外部指标(Purity, ARI, NMI, ACC) 和内部指标(NCC,Entropy,Compactness,Silhouette Index),附代码 (Python 和 Matlab)