Los resultados de variación_de_información de cdlib e igraph son diferentes
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?
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.