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.

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

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.

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


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.

Realizamos algunas comprobaciones básicas.


4 – Segmentación RFM
En esta sección definimos y generamos los segmentos mediante las funciones PAL.
Definición de la estrategia de segmentos:

Generamos el bin de Recencia.

Generamos el bin de Frecuencia.

Generamos el bin de Monetario.

Fusionamos los 3 dataframes en un único dataframe


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


5 – Guardamos Dataframe en Hana
Guardamos el RFM Dataframe en una tabla 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.

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).
1 comentario