Éste es el tercer post de la serie SAP Hana Graph; si habéis llegado hasta aquí, habréis pasado por los anteriores 😉, y sino, aquí os dejo los links por si estáis interesados en verlos.

SAP Hana Graph I – Introducción

SAP Hana Graph II – Pattern Matching – Recomendando un producto

En esta entrega voy a comentar algunos ejemplos y casos de uso de esos algoritmos que trae de serie SAP Hana Graph. Uno de los aspectos más interesantes de las últimas versiones (Hana 2.0 SP3-SP4) es la posibilidad de ejecutar estos algoritmos embebidos en calculation scenarios, lo que aumenta notablemente la potencia analítica ya que podemos combinar el resultado de los algoritmos con otros modelos que podamos tener construidos.

El Dataset

Al contrario que en los dos primeros posts, donde trabajamos con un dataset basado en ventas, en este, me he decantado por uno que tiene relaciones bidireccionales, es decir, de un nodo A hacia un nodo B y viceversa; concretamente un registro Call Data Record donde se recogen registros de llamadas telefónicas, duraciones, tipo de llamada, etc. Los datos provienen de los ficheros demo que trae de serie la herramienta SAP Predictive Analysis para el escenario de Social Network Analysis (SNA).

Si le echamos un vistazo a los datos, podemos observar, en rojo conexiones bidireccionales entre el nodo 1999 y el 6568, en amarillo entrantes desde el 1674 al 1999 y en verde salientes desde el 1999 al 5474.

Sobre el dataset que vamos a emplear, tenemos:

  • Los registros de tipo nodo o vertex.
  • Los registros de conexiones o edges.

Tenemos nodos origen y destino que se relacionan entre sí a través de contactos, de tipo llamada, sms, etc. con cierta duración, en cierta fecha y hora.

Los Algoritmos

SAP HANA Graph dispone de una serie de algoritmos que pueden emplearse en calculation scenarios, calculation views y graphscrtipt procedures; esto permite ejecutarlos sobre un Graph workspace definido proporcionando los resultados en modo tabular.

Neighborhood Search

Este algoritmo recupera los nodos vecinos a partir de un nodo indicado y con un radio especificado, pudiendo definirse parámetros como:

Para ver un ejemplo tomamos como referencia un nodo fuente y el algoritmo nos devuelve todos aquellos nodos salientes, entrantes o ambos con la profundidad indicada. Si indicamos una profundidad por ejemplo de 1 a 4, el resultado es el siguiente:

Por cada uno de los niveles de profundidad obtenemos el número de nodos que contiene cada uno.

  • Nivel de profundidad 1.
  • Nivel de profundidad 2.
  • Nivel de profundidad 3.

Y así sucesivamente hasta el nivel indicado.

Shortest path

Este algoritmo permite desde un nodo indicado obtener el camino para llegar a un nodo destino o a todos los nodos destino posibles.

En nuestro ejemplo, si desde un numero origen queremos llegar a uno destino:

El resultado indica que hay 7 niveles de profundidad para alcanzar el nodo destino, el output del algoritmo es el camino por cada uno de ellos hasta llegar al destino.

En el gráfico vemos la ruta a seguir para alcanzar el nodo destino.

Strongly Connected Components

Este algoritmo nos devolverá agrupados en componentes los ID de los nodos que están “fuertemente” conectados entre sí, es decir, todos aquellos nodos que sean alcanzables desde cualquier nodo perteneciente a ese componente. Ejecutando el algoritmo sobre nuestro dataset obtenemos los siguientes resultados.

El componente es el identificador del grupo que el algoritmo ha construido y se muestra el número de nodos que lo componen.

Por ejemplo, para el componente número 60 tenemos un total de 8 nodos.

Combinando en Hana el resultado del algoritmo con los datos origen (registro de llamadas y datos maestros) podemos saber por ejemplo que números conforman este grupo, duración y número de llamadas.

A que destinos ha llamado.

Como veis, una de las grandes ventajas consiste en poder combinar funcionalidad Graph con el resto de los componentes de Hana. Esto, junto con la capacidad que le confiere ser una plataforma in-memory abre la posibilidad de realizar analíticas avanzadas que anteriormente, o no eran posibles, o se conseguía a través de diferentes productos y/o herramientas.

Referencias:

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.