En el anterior post veíamos cómo realizar una segmentación de clientes RFM utilizando la funcionalidad de la librería PAL a través del entorno gráfico AFM para generar Flowgraphs.

Customer RFM Segmentation – SAP Hana Native Approach (Part I)

En el post de hoy vamos a ver cómo realizar la misma segmentación, pero empleando la funcionalidad de Hana Machine Learning con la API de Python para interactuar con las funciones de la librería PAL en Hana, para ello necesitamos:

  • Un entorno con la instalación de Python, Anaconda con Jupyter Notebook o VS Code con anaconda o Python de back-end.
  • Instalación del API de Python para Hana (hana_ml).

La idea sigue siendo la misma, a partir de un modelo de datos virtual (VDM) en Hana generaremos los Bins o segmentos para la recencia (R), la frecuencia (F) y monetario (M) y como paso final lo grabaremos en una tabla del sistema para emplearlo en un posterior análisis.

Empezamos.

1.- DataFrame

La API de Python de SAP HANA para las funciones de machine learning (API de cliente de Python para ML) proporciona un conjunto de funciones de Python del lado del cliente para acceder y consultar los datos de SAP HANA, y un conjunto de funciones para desarrollar modelos.

La API de Python para ML tiene 2 partes:

  • Un conjunto de APIs para diferentes algoritmos del PAL
  • El marco de datos de SAP HANA, que proporciona un conjunto de métodos para analizar datos en SAP HANA sin llevar esos datos al cliente.

Esta biblioteca utiliza el controlador Python de SAP HANA (hdbcli) para conectarse y acceder a SAP HANA.

Hana ML API

Un dataframe representa una tabla (o cualquier sentencia SQL). La mayoría de las operaciones en están diseñadas para no traer datos de la base de datos a menos que se solicite explícitamente de modo que las operaciones se realicen en la base de datos.

2.- Importamos las librerias

Importamos librerias en el notebook

3 – Setup connection

Para utilizar un Dataframe de SAP HANA, creamos el objeto “ConnectionContext” y luego
empleamos los métodos de la biblioteca PAL para crear un HANA DataFrame. Éste solamente puede emplearse mientras el ConnectionContext esté abierto y no es accesible una vez que se cierra la conexión.

Configuramos la conexión

Hana Model

Utilizamos un modelo Hana (Virtual Data Model) para obtener la información que necesitamos para crear los segmentos en nuestro Notebook.

Hana VDM model
Hana Model Calculation View

Creamos el contenido de la conexión para el marco de datos, en este paso especificamos la sentencia de SQL para obtener los datos para nuestra segmentación.

Conexion Context

Realizamos algunas comprobaciones básicas.

Comprobaciones Basicas Dataframe
Dataframe base para el RFM

4 – Segmentación RFM

En esta sección definimos y generamos los segmentos mediante las funciones PAL.

Definición de la estrategia de segmentos:

Definición de la estrategia de segmentos

Generamos el bin de Recencia.

Segmento Recencia

Generamos el bin de Frecuencia.

Segmento Frecuencia

Generamos el bin de Monetario.

Segmento Monetario

Fusionamos los 3 dataframes en un único dataframe

Fusionamos los Dataframes
Dataframe final con los 3 segmentos

Generamos una serie de gráficos para visualizar la distribución de los segmentos y los valores medios de cada uno de ellos.

Visualización
Visualización distribución de clientes y segmentos

5 – Guardamos Dataframe en Hana

Guardamos el RFM Dataframe en una tabla en Hana.

Guardamos Dataframe con segmentación RFM en Hana

6 – Hana Database

Como paso final de nuestra segmentación RFM, cada cliente tiene asignado un segmento y los tenemos almacenado en el sistema estando disponible para análisis posteriores.

Tabla con RFM

Con este último paso hemos visto como realizar una segmentación RFM en Hana, en el siguiente post os mostraré como analizar esta información en combinación con información transaccional de nuestro dataset empleando SAP Analytics Cloud (SAC).

Responder

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. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

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