Decision trees with SAP Predictive Analytics and SAP HANA

La minería de datos, según definición, es una disciplina cuyo objetivo principal es descubrir patrones y lo más importante, predecir y ganar más conocimiento en sus datos. Esto se hace mediante la combinación de diferentes métodos y enfoques de la inteligencia artificial y las disciplinas estadísticas. Uno de los problemas más comunes es cómo construir un clasificador preciso y óptimo que los datos brutos dados nos ayuda a construir un modelo para clasificar los casos futuros. Hay muchos algoritmos y métodos disponibles y nos referiremos en este artículo de blog al C4. 5 que está disponible en la herramienta SAP Predictive Analytics. SAP Predictive Analytics (SAP Infinite Insight) proporciona capacidades de minería de datos que ayudan a muchas empresas a anticipar las conductas y demandas de los clientes. SAP Predictive Analytics es muy fácil de usar y muy potente, se puede descargar aquí.

El objetivo del algoritmo C4. 5 es crear árboles de decisión basados ​​en conjuntos de datos. Su primera versión vino del algoritmo ID3 que fue desarrollado por Ross Quinlan. Aunque C4. 5 es muy popular, hay muchas otras opciones como J48 y el C5 extendido. 0.

How does it work?

Tomando un grupo de ejemplos, C4. 5 construye el árbol de decisiones más simple (no necesariamente binario) para clasificar nuevos casos. Establece el atributo más importante como base y añade nuevos nodos evaluando la importancia de los siguientes atributos.

En el ejemplo anterior, podemos clasificar un objeto de acuerdo a sus atributos y obtener si es una clase A o un objeto de clase B. La hoja del árbol muestra el resultado del análisis.

Más detalladamente, obtener el árbol de decisiones más corto es un problema conocido en la informática como NP-completo. Esto significa básicamente que no hay manera de encontrar la solución más óptima para este problema en un tiempo razonable. ¿Y cómo es esto posible? El orden de los nodos va a afectar el tamaño del árbol de decisión y esto aumenta la complejidad a un nivel muy alto. Sin embargo, C4. 5 utiliza un enfoque codicioso para obtener una solución que funcione razonablemente bien. Esta solución se basa en el concepto de Entropía de Información:

Nota: La entropía mide la falta de homogeneidad de un conjunto de ejemplos

Es decir, el algoritmo construye el árbol seleccionando el atributo con la entropía más pequeña posible. Hay muchas referencias sobre la operación y el rendimiento de C4. 5, pero esto puede ser algo que cubrir en otro post.

¿Cómo puede ayudar SAP?

Las capacidades de minería de datos son una necesidad para muchas empresas. Proporcionan una visión para el futuro y el analista puede anticipar eventos o comportamientos que mejorarán el proceso de toma de decisiones. Por un lado, la herramienta SAP Predictive Analytics proporcionará la interfaz de usuario para construir modelos predictivos y aplicar procedimientos de minería de datos para pronosticar y analizar. Está construido sobre SAP Lumira, por lo tanto es basado en gráficos y muy fácil de usar.

Por otro lado, SAP HANA proporciona una base de datos en memoria extremadamente rápida y potente. Tendría sentido que realmente podamos aprovechar esta potencia de caballos y ejecutar el algoritmo en HANA.

  • La Biblioteca de Análisis Predictivo (PAL) de HANA define funciones que pueden usarse para realizar algoritmos de análisis predictivo.

Example

Para este análisis, utilizaremos los siguientes datos brutos. La siguiente tabla representa una lista de clientes de una compañía de seguros y la última columna define si es un cliente fraudulento o no.

IDENTIFICACIÓN

POLÍTICA

AÑOS

NACIONALIDAD

OCUPACIÓN

FRAUDE

1

Home

24

Nación 1

Ventas

No

2

Home

41

Nación 1

ESO

No

3

Home

38

Nación 1

Ventas

4

Home

62

Nación 1

Márketing

No

5

Home

51

Nación 2

Ventas

No

6

Viajar

33

Nación 2

Ventas

No

7

Viajar

46

Nación 2

ESO

No

8

Viajar

42

Nación 2

Márketing

No

9

Viajar

21

Nación 2

Ventas

No

10

VEHÍCULO

44

Nación 2

ESO

No

11

VEHÍCULO

64

Nación 1

Ventas

12

VEHÍCULO

54

Nación 3

ESO

No

13

VEHÍCULO

26

Nación 3

Ventas

No

14

VEHÍCULO

44

Nación 3

Márketing

Nos gustaría construir un árbol de decisiones basado en estos datos, que va a ayudarnos a clasificar a un cliente para ver si es probablemente fraudulento o no.

Let’s assume we have a model in HANA with this data available (check how to build a model find SAP reference guide  http://www.saphana.com/docs/DOC-1074) in an Attribute View Called “PRED_SAMPLE”.  So First we open SAP PA and click New Document and select Connect to SAP HANA.

Después de introducir el nombre del host y las credenciales, siga el proceso y seleccione la vista que contiene los datos a analizar y haga clic en crear.

 Nota: C4. 5 solo está disponible en HANA PAL y no en PA, por lo que sólo estará disponible cuando trabajemos con datos en HANA.

Después de cargar los datos, hacemos clic en Predict para acceder a la vista Predictive. En el panel derecho podemos seleccionar los algoritmos predictivos disponibles y otros procedimientos a utilizar. HANA C4. 5 debería estar disponible si hemos establecido la conexión correctamente. Sólo tenemos que hacer doble clic y un nodo se agregará en el compositor.

No necesitamos ninguna transformación de datos, ya que suponemos que los datos se han preparado antes.

El siguiente paso es configurar la ejecución, así que hacemos doble clic en el icono HANA C4. 5 en el flujo de trabajo y accederemos al panel de configuración. Una vez abierto, en la Selección de Columna seleccionamos como Características las columnas que van a ser los atributos del árbol de decisión:

  • POLÍTICA

  • AÑOS

  • NACIONALIDAD

  • OCUPACIÓN

El valor que va a ser el objetivo de la clasificación es la columna "FRAUD" (que en realidad va a ser la hoja del árbol). Por lo tanto, lo especificamos en el campo "Variable de destino" y hacemos clic en "Hecho":

Ahora simplemente hacemos clic en "Ejecutar" y seremos redirigidos a la vista de resultados donde podremos obtener el diseño del árbol de decisión. Tenga en cuenta que todas las hojas están proporcionando un resultado para el análisis, mientras que los nodos proporcionan la probabilidad de que el resultado de ir de esa manera:

Algunas consideraciones

-> Comprueba que tienes HANA PAL instalado en tu servidor HANA

AFL (biblioteca de funciones de aplicación) incluye PAL. Podemos abrir una consola SQL y ejecutar el siguiente comando para comprobar:

seleccione * de "Sys". "Afl_functions" donde Schema_name = '_sys_afl' y Area_name = 'aflpal';

-> Compruebe si el usuario utilizado para iniciar sesión en HANA a través de PA tiene el rol AFL_SYS_AFL_AFLPAL_EXECUTE concedido. De la misma manera, marque la pestaña Privilegios de objeto si los procedimientos AFL_WRAPPER_GENERATOR y AFL_WRAPPER_ERASER se conceden con Execute:

EspañolEnglish