cdlib和igraph的variation_of_information结果不同

问题描述 投票:0回答:1

假设我们有两个社区分区,如下所示:

社区分区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。

他们的结果不同。我们如何测量它?

python cluster-analysis igraph
1个回答
0
投票

我检查了两个库的源代码。

igraph 返回自然单位信息的变化,即它使用自然对数。 cdlib 以位为单位返回它,即它使用以 2 为底的对数。

我更新了 igraph 文档,提到使用了自然单位。

© www.soinside.com 2019 - 2024. All rights reserved.