们在维基百科页面中的链接进行了连接。
这些顶点的颜色表示它们的团体关系,大小是根据它们的中心度(centrality)确定的。这些聚类在现实生活中也很有意义,其中黄色顶点通常是参考/搜索网站,蓝色顶点全部是在线发布网站(文章、微博或代码)。假设我们已经将该网络聚类成了一些团体,就可以使用该模块性分数来评估聚类的质量。分数更高表示我们将该网络分割成了“准确的”团体,而低分则表示我们的聚类更接近随机,如图6-36所示。
模块性可以使用以下公式进行计算:
$$
M = \frac { 1 } { 2 L } \sum _ { i , j = 1 } ^ { N } \left( A _ { i j } - \frac { k _ { i } k _ { j } } { 2 L } \right) \delta c _ { i } , c _ { j }
$$
其中L代表网络中边的数量, $\mathrm { k _ { i } }$ 和 $\mathrm { k _ { j } }$ 是指每个顶点的degree,可以通过将每一行和每一列的项加起来而得到。两者相乘再除以2L表示当该网络是随机分配的时候,顶点i和之间的预期边数。整体而言,括号中的项表示该网络的真实结构和随机组合时的预期结构之间的差。研究它的值可以发现,当 $\mathrm { A _ { i j } = 1 }$ 且 $( \mathrm { k } _ { \mathrm { i } } \mathrm { k } _ { \mathrm { j } } ) / 2 \mathrm { L }$ 很小时,其返回的值最高。这意味着,当在定点i和j之间存在一个“非预期”的边时,得到的值更高。最后的 $\mathrm { \delta c _ { i } , \ c _ { j } }$ 就是大名鼎鼎的克罗内克δ函数(Kronecker-Delta Function)。下面是其Python解释。
第6章 机器学习算法
191