Los resultados de variación_de_información de cdlib e igraph son diferentes

Resuelto tknsci asked hace 1 año • 0 respuestas

Supongamos que tenemos dos particiones comunitarias como se muestra a continuación:

Partición comunitaria 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]

Entonces, información comunitaria de los nodos:

[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]

Partición comunitaria 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]

Entonces, información comunitaria de los nodos:

[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]

Queremos comparar estas particiones para medir la variación_de_información. Usamos evaluación.variation_of_information de cdlib y compare_communities con método = 'vi' de igraph python.

Pero el resultado de cdlib es 0,66 y el resultado de igraph es 0,46.

Sus resultados son diferentes. ¿Cómo podemos medirlo?

tknsci avatar Feb 17 '24 03:02 tknsci
Aceptado

Revisé el código fuente de ambas bibliotecas.

igraph devuelve la variación de la información en unidades naturales, es decir, utiliza el logaritmo natural. cdlib lo devuelve en bits, es decir, utiliza el logaritmo de base 2. Los dos resultados que obtienes son consistentes entre sí porque 0,46 / ln(2) = 0,66.

Actualicé la documentación de igraph para mencionar que se utilizan unidades naturales.

Szabolcs avatar Feb 18 '2024 10:02 Szabolcs