Algoritmo Same Community

El algoritmo de Same Community o de misma comunidad forma parte de la familia de algoritmos de predicción de enlaces.en la biblioteca de algoritmos de Neo4j. Este algoritmo nos permite detectar si dos nodos pertenecen a la misma comunidad. A continuación conoceremos más a profundidad este importante algoritmo y su funcionamiento. Acompañaremos esta breve explicación con un ejemplo práctico que nos permita comprender de mejor manera su funcionalidad. 

¿Qué es el algoritmo same community?

Este algoritmo conocido como Same Community perteneciente a la familia de algoritmos de detección de enlaces. Con sus propiedades podemos determinar si un par de vértice contenidos dentro de un grafo forman parte de una misma comunidad. Estas comunidades también son detectables con otros algoritmos especiales. Tomando como punto de partida la hipótesis de que dos nodos formen parte de la misma comunidad existe una probabilidad más alta de que exista una relación o conexión entre ellos en el futuro si aún no existe. 

En los valores que devuelve el algoritmo tenemos que si el valor es 0, los vértices analizados no pertenecen a la misma comunidad. Ahora, si el valor que nos regresa el algoritmo es de 1, los nodos pertenecen a la misma comunidad de datos dentro de un grafo. 

Ahora para entender más a profundidad el funcionamiento del algoritmo veamos un ejemplo práctico.

community

Ejemplo de aplicación

Para ejecutar este ejemplo en procederemos a construir un grafo en el que asignaremos algunos datos y características. Veamos a continuación: 

MERGE (zhen:Person {name: "Zhen"}) SET zhen.community = 1
MERGE (praveena:Person {name: "Praveena"}) SET praveena.community=2
MERGE (michael:Person {name: "Michael"}) SET michael.community = 1

MERGE (arya:Person {name: "Arya"}) SET arya.partition = 5
MERGE (karin:Person {name: "Karin"}) SET karin.partition = 5

MERGE (jennifer:Person {name: "Jennifer"}

Después de construido el grafo procedemos a ejecutar el algoritmo solicitando en la consulta en Cypher el análisis de dos vértices específicos. 

MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Zhen'})
RETURN algo.linkprediction.sameCommunity(p1, p2) AS score
score
1.0

Ahora bien, el resultado nos indica que los vértices analizados forman parte de la misma comunidad, procederemos a ejecutar específicamente el algoritmo nuevamente para conocer el estado de conexión de otros vértices

MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Praveena'})
RETURN algo.linkprediction.sameCommunity(p1, p2) AS score
score
0.0

Esperamos que esta información sea de utilidad para comprender las funcionalidades de este importante algoritmo. 

Visita más de Grapheverywhere para conocer todo sobre algoritmos de análisis de grafos. 

 

.

 

Share This