假设我们有两个社区分区,如下所示:
社区分区1
Community0= [8, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]
Community1= [1, 2, 3, 7, 11, 12, 13, 15, 18]
Community2= [0, 4, 5, 6, 9, 10, 14, 22]
那么,节点的社区信息:
[2, 1, 1, 1, 2, 2, 2, 1, 0, 2, 2, 1, 1, 1, 2, 1, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
社区分区2
Community0= [32, 33, 8, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31]
Community1= [0, 3, 4, 5, 6, 9, 10, 11, 22]
Community2= [1, 2, 7, 12, 13, 14, 15, 18]
那么,节点的社区信息:
[1, 2, 2, 1, 1, 1, 1, 2, 0, 1, 1, 1, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
我们想要比较这些分区来衡量信息的变化。我们使用了cdlib的evaluation.variation_of_information和igraph python的method='vi'来比较社区。
但是,cdlib 结果是 0.66,igraph 结果是 0.46。
他们的结果不同。我们如何测量它?
我检查了两个库的源代码。
igraph 返回自然单位信息的变化,即它使用自然对数。 cdlib 以位为单位返回它,即它使用以 2 为底的对数。
我更新了 igraph 文档,提到使用了自然单位。