miércoles, 22 de abril de 2015

       1.35 Metodología  para proyectos de Inteligencia de Negocio (BI).
               Parte Final

Dra. Dafne Rosso Pelayo
La inteligencia de negocio en la empresa, sólo puede lograrse mediante la adopción de medidas para alcanzarla.


En el artículo anterior abordamos la tercera fase de CRISP-DM (Cross Industry Standard Process for Data Mining) (1)  y continuamos con la construcción de un prototipo de BI.
En este artículo finalizaremos el ejercicio desarrollado con la metodología CRISP-DM, plantearemos la cuarta, quinta y sexta  fases relacionadas con la elaboración del modelo analítico y la implementación del mismo.

Fase de Preparación de  datos
Como ya se mencionó en el artículo anterior planteamos la tercera fase de CRISP-DM,  “Preparación de Datos” la cual está ampliamente relacionada con la fase dos “Entendimiento de los datos”, por lo tanto es altamente probable que al realizar la preparación de los datos se deba regresar a la fase anterior a entender o definir nuevamente algún dato que fue mal interpretado o que se incorpora. El incremento o decremento de la dimensionalidad del conjunto de datos (esto es el incremento o decremento de atributos) también es factible de efectuarse en la fase de preparación a fin de lograr explicar mejor el comportamiento de los datos y obtener modelos con resultados más precisos.
 La siguiente figura muestra las fases integrantes de la metodología.




Figura 1. Metodología CRISP-DM(1)

Ahora estamos listos para efectuar el modelado de los datos, la fase anterior nos dio el conocimiento necesario para saber que tipo de algoritmo emplear en los datos, esto es si conocemos la estructura de los datos y sabemos que buscamos un resultado binario como puede ser pertenecer o no pertenecer a una clase o “Target”, por ejemplo “spam” o “no spam”, o  un atributo especifico como resultado, o bien, la categoría, tipo de especie, etc., deberemos usar un algoritmo de clasificación.
Si lo que queremos es encontrar que eventos suceden en conjunto en una transacción, es decir  necesitamos descubrir que cuando ocurre el evento A ocurre el evento B, entonces deberemos usar un algoritmo de  asociación.
Si por el contrario no conocemos la estructura de los datos y lo que necesitamos es encontrar patrones naturales del comportamiento de nuestro conjunto datos, a fin de agrupar los comportamientos similares, es probable que estemos frente a una segmentación, por los tanto emplearemos algoritmos de agrupamiento o “clustering”.

Si estamos frente a un set numérico y necesitamos la predicción de los valores siguientes, es decir, valores a futuro (predicción de ventas, gasto, demanda, etc..) o de los valores siguientes en el tiempo, usaremos algún algoritmo predictivo y si está asociado a una fecha probablemente emplearemos algoritmos que trabajen con series de tiempo.


Figura 2. Exploración de datos

La fase de preparación de datos es un factor de éxito, sin ella no puede generarse satisfactoriamente ningún análisis avanzado o sistema inteligente.
El modelado puede efectuarse con una herramienta de uso libre como R, Weka, RapidMiner o con otra plataforma analítica como SPSS o SAS. También es posible hacer la programación de los modelos (siempre que el volumen de datos no sea excesivo) y conozca la manera en que funciona e itera el algoritmo que desea emplear por ejemplo: el algoritmo de clasificación ID3 y el algoritmo Apriori son algoritmos no complicados de programar, sin embargo, el volumen de datos puede hacer de la programación una solución no factible.




Figura 3. Exploración de Datos en la fase de Preparación de los datos




Figura 4. Exploración de Datos en la fase de Preparación de los datos (Edad vs Tipo)


Fases de CRISP-DM: Modelado
En la construcción del modelo, generaremos un modelo de minería de datos empleando  un algoritmo de clasificación, este ejercicio lo realizamos en el art 5 y 6, empleando un algoritmo ID3, en este articulo emplearemos un árbol de decisión  C5 y esta vez utilizaremos la herramienta estadística y de minería de datos R, para su construcción.
Los algoritmos de clasificación permiten encontrar los patrones de comportamiento en forma de reglas y/o árboles, que obedecen a un atributo (target) de nuestro interés; en nuestro caso, tratamos de encontrar los patrones de compra que obedecen a los tipos de producto, por lo tanto nuestro target es el atributo “Tipo” que de acuerdo a nuestro diccionario de datos generado en el art 32 contiene el tipo de producto.
En el uso de herramientas de minería de datos los algoritmos requieren de un conjunto de datos de entrenamiento y un conjunto de datos prueba.
El conjunto de datos de prueba permite realizar la validación del modelo, para determinar la calidad de los resultados obtenidos.

Aplicando la metodología al piloto.

Nuestro conjunto de datos se encuentra en Excel, la herramienta estadística y de minería de datos R es de uso libre. R es ampliamente usada en la comunidad científica en la resolución de problemas analíticos. Actualmente las plataformas líderes en minería de datos como SPSS y SAS cuentan con interfaces a R.
Aplicando en R el algoritmo de clasificación C5 el cuál maneja el concepto de entropía visto en el art xx. Tenemos el siguiente conjunto de reglas  resultantes:


> treeModel <- C5.0(x = ventas[, -11], y = ventas$Tipo)
> treeModel

Call:
C5.0.default(x = ventas[, -11], y = ventas$Tipo)

Classification Tree
Number of samples: 279
Number of predictors: 10

Tree size: 7

Non-standard options: attempt to group attributes

> summary(treeModel)

Call:
C5.0.default(x = ventas[, -11], y = ventas$Tipo)


C5.0 [Release 2.07 GPL Edition]         Tue Apr 21 16:59:41 2015
-------------------------------

Class specified by attribute `outcome'

Read 279 cases (11 attributes) from undefined.data

Decision tree:

Tipo = coches/barcos/aviones: coches/barcos/aviones (18)
Tipo = construccion: construccion (63)
Tipo = juego de mesa: juego de mesa (45)
Tipo = montables: montables (27)
Tipo = muñeca/muñeco: muñeca/muñeco (45)
Tipo = muñeca/muñeco accion: muñeca/muñeco accion (45)
Tipo = peluche: peluche (36)


Evaluation on training data (279 cases):

            Decision Tree  
          ---------------- 
          Size      Errors 

             7    0( 0.0%)   <<


           (a)   (b)   (c)   (d)   (e)   (f)   (g)    <-classified as
          ----  ----  ----  ----  ----  ----  ----
            18                                        (a): class coches/barcos/aviones
                  63                                  (b): class construccion
                        45                            (c): class juego de mesa
                              27                      (d): class montables
                                    45                (e): class muñeca/muñeco
                                          45          (f): class muñeca/muñeco accion
                                                36    (g): class peluche


        Attribute usage:

        100.00% Tipo


Time: 0.0 secs

> ruleModel <- C5.0(Tipo ~ ., data = ventas, rules = TRUE)
> ruleModel

Call:
C5.0.formula(formula = Tipo ~ ., data = ventas, rules = TRUE)

Rule-Based Model
Number of samples: 279
Number of predictors: 10

Number of Rules: 8

Non-standard options: attempt to group attributes

> summary(ruleModel)

Call:
C5.0.formula(formula = Tipo ~ ., data = ventas, rules = TRUE)


C5.0 [Release 2.07 GPL Edition]         Tue Apr 21 17:08:55 2015
-------------------------------

Class specified by attribute `outcome'

Read 279 cases (11 attributes) from undefined.data

Rules:

Rule 1: (18, lift 14.7)
        Energia in {no usa, pilas}
        Capacidad.2 = no aplica
        ->  class coches/barcos/aviones  [0.950]

Rule 2: (63, lift 4.4)
        Edad in {>16, 4 a 8}
        Color in {opacos, vivos}
        Energia = no aplica
        Capacidad.3 = no aplica
        ->  class construccion  [0.985]

Rule 3: (45, lift 6.1)
        Color = no aplica
        ->  class juego de mesa  [0.979]

Rule 4: (27, lift 10.0)
        Capacidad.3 in {canastilla, compartimiento}
        ->  class montables  [0.966]

Rule 5: (36, lift 6.0)
        Color = vivos
        Energia = pilas
        Capacidad.2 = efecto sonoro
        ->  class muñeca/muñeco  [0.974]

Rule 6: (9, lift 5.6)
        Edad = 1 a 3
        Capacidad.3 = no aplica
        ->  class muñeca/muñeco  [0.909]

Rule 7: (45, lift 6.1)
        Color = opaco
        Energia in {pilas, recargable}
        Capacidad.2 = efecto sonoro
        ->  class muñeca/muñeco accion  [0.979]

Rule 8: (36, lift 7.5)
        Color in {b & n, opaco}
        Energia = no aplica
        ->  class peluche  [0.974]

Default class: construccion


Evaluation on training data (279 cases):

                Rules    
          ----------------
            No      Errors

             8    0( 0.0%)   <<


           (a)   (b)   (c)   (d)   (e)   (f)   (g)    <-classified as
          ----  ----  ----  ----  ----  ----  ----
            18                                        (a): class coches/barcos/aviones
                  63                                  (b): class construccion
                        45                            (c): class juego de mesa
                              27                      (d): class montables
                                    45                (e): class muñeca/muñeco
                                          45          (f): class muñeca/muñeco accion
                                                36    (g): class peluche


        Attribute usage:

         80.65% Color
         70.97% Energia
         35.48% Capacidad.2
         35.48% Capacidad.3
         25.81% Edad


Time: 0.0 secs

Se observa en las reglas resultantes el patrón de compra que siguen los clientes de acuerdo  a las características de los artículos. En este caso y de acuerdo al conjunto de datos las características que pesan más en la selección de los juguetes son el color y el tipo de energía que usan, así como características adicionales observando que la edad no fue tan representativa.
En el siguiente artículo platicaremos como se ha extendido el uso de la analítica avanzada  en las empresas.


1. Pete Chapman (NCR), Julian Clinton (SPSS), Randy Kerber (NCR),Thomas Khabaza (SPSS), Thomas Reinartz (DaimlerChrysler),Colin Shearer (SPSS) and Rüdiger Wirth (DaimlerChrysler). CRISP-DM 1.0. 1999,2000.


Copyright © 2015 Dafne Rosso Pelayo. Todos los derechos reservados.





jueves, 14 de febrero de 2013

1.34 Metodología para proyectos de Inteligencia de Negocio (BI). Tercera Parte

Dra. Dafne Rosso Pelayo
La inteligencia de negocio en la empresa, sólo puede lograrse mediante la adopción de medidas para alcanzarla.


En el artículo anterior abordamos la segunda fase de CRISP-DM (Cross Industry Standard Process for Data mining) (1)  y continuamos con la construcción de un prototipo de BI.
En este artículo continuaremos describiendo la metodología CRISP-DM, esta vez plantearemos su tercera fase relacionada con la preparación de los datos.

Preparando  los datos
Repasando, CRISP-DM es una metodología “ágil” iterativa, las fases que maneja están  relacionadas con su fase predecesora y/o sucesora de tal manera que el cambio se maneja  con menores impactos en comparación con las metodologías tradicionales.  La tercera fase “Preparación de Datos” está ampliamente relacionada con la fase dos “Entendimiento de los datos”, por lo tanto es altamente probable que al realizar la preparación de los datos se deba regresar a la fase anterior a entender o definir nuevamente algún dato que fue mal interpretado o que se incorpora.
 La siguiente figura muestra las fases integrantes de la metodología.



La preparación de los datos es una parte crítica dentro del análisis avanzado de información, ya sea que se trate de efectuar un análisis estadístico, un análisis de minería de datos o textos o bien para la construcción de un sistema de descubrimiento de conocimiento.
En el artículo 7  presentamos una diferencia importantísima entre los que es la minería de datos y un sistema de descubrimiento de conocimiento en las bases de datos. Un sistema de descubrimiento de conocimiento en las bases de datos incluye la preparación de los  datos, la extracción de patrones de los datos (minería de datos) y la preparación de los modelos predictivos y/o de aprendizaje, mientras que la minería de datos se refiere sólo a la extracción de patrones en los datos.
Figura 2. Sistema de descubrimiento de conocimiento en las bases de datos

La fase de preparación de datos es un actor de éxito, sin ella no puede generarse satisfactoriamente ningún análisis avanzado o sistema inteligente.
La preparación de los datos consta de: validación, transformación  y selección.
Figura 3. Preparación de los datos

Puede consultar el artículo 7  para la definición y  contenido de cada uno de estos pasos.  En este artículo veremos la preparación de los datos desde el punto de vista de CRISP-DM.

Fases de CRISP-DM: Preparación de datos
La preparación de datos  es la tercera fase de la CRISP-DM y comprende los siguientes puntos:

1.      Selección de datos
2.      Limpieza de datos
3.      Construcción de Datos
4.      Integración de datos
5.      Formato de datos

Esta fase es también al igual que la fase uno y dos, es  importante y requiere que todos los involucrados estén de acuerdo en los puntos que la conforman.
Aplicando la metodología al piloto.
Elaboremos ahora un esquema  que le permita darse una idea de que debe de hacer y a que debe de llegar en cada uno de estos pasos.

Pasos en la preparación de los datos
1.       Selección de datos
En este paso se van a seleccionar los conjunto de datos sobre los cuáles se aplicarán las técnicas de análisis avanzado para alcanzar las metas, alcances y objetivos fijados en la fase uno.

Es probable que se determinen no sólo uno sino varios conjuntos de datos,  a través de  realizar diferentes  combinaciones de los atributos que fueron estudiados e incluidos en la fase dos.

A continuación describimos y aplicamos al prototipo algunos de estos puntos
Ejemplo


Para nuestro piloto generaremos varios conjuntos de datos en los cuales está incluida: la marca, el precio y la tienda.
Esto nos permitirá realizar segmentos del mercado y detectar patrones de comportamiento solo para ciertos datos y no para todo el conjunto.
Segmentar clientes
Selección del conjunto de datos que permitirá cumplir los objetivos citados en la fase uno, es probable que esta selección modifique el alcance del proyecto.

Para nuestro piloto:
Clientes, datos del cliente (sexo, edad, etc.)
Productos (Marcas, tipos, categorías, etc.)



Crear nuevas promociones
Para nuestro piloto:
Segmentos de Clientes generados.
Productos (Marcas, tipos, categorías, etc.)
Descriptivos de productos (Tallas, colores, costo, etc.)
Promociones (descuento, frecuencia, meses sin intereses, etc.)
Tienda (sucursal, zona, etc.)
Tipo de pago (efectivo, tarjeta, )

Elasticidad en el precio de las promociones
Datos de ventas
Resultados anteriores,
Etc...
Tantos grupos como sean necesarios según sus metas.









2.       Limpieza de datos
Es necesario negociar y determinar cuál será el tratamiento que se empleará para aquellos datos incompletos, omitidos, erróneos, etc.

Es importante involucrar al dueño de los datos en las decisiones de limpieza para no generar criterios de remplazo erróneos y que ocasionen desviaciones o mayor dispersión en los análisis estadísticos.
     
En nuestro piloto
Para datos omitidos o erróneos: sustituir las características del producto por aquellos que presenten el valor más repetido (moda de la serie).
No considerar al cliente si faltan ciertos datos personales.

Para datos numéricos: Colocar el precio promedio del conjunto del mismo tipo en los valores omitidos.
Etc.


3.       Construcción  de datos

En los análisis estadísticos ó de minería de datos, para detectar tendencias, patrones de comportamiento, grupos, etc... , es frecuente que se incluyan datos que no fueron considerados en la selección inicial y que incluso pueden no formar parte del negocio. Se trata de incorporar datos (muchas veces del exterior) que proporcionen más información o ayuden a afinar los análisis. Por ejemplo. En el artículo 25 platicamos sobre la venta de café, la venta de café tiene una fuerte correlación con otras variables externas, una de ellas es la temperatura ambiente, mientras más baje la temperatura  mayor será la venta de café.

Para realizar un pronóstico predictivo más asertivo es indispensable añadir nuevos datos que aporten valor al análisis.

Las reglas de negocio, las trasformaciones y variantes de los datos en el negocio deben de ser consideradas en esta parte.

Para el piloto:

Los productos que sean nuevos no pueden tener descuento. -> Nuevo (0 o 1)
Los productos de ciertas marcas solo entran a meses sin intereses.-> TIPO_PROMO (1, 2,...,N)
Se acepta pago con tarjeta a partir de cierta cantidad de dinero. ->TARJETA(0 /1)
Etc.…



En nuestro ejemplo
Incorporaremos varias variables, entre ellas,
Día festivo:  si se trata de un día festivo (0 , 1)


4. Integración de datos
Los datos preparados en los pasos anteriores muchas veces serán integrados (unidos) para su análisis en campos nuevos.

5. Formato de datos
De ser necesario hacer un reformateo a los datos. En términos de análisis para poder realizarlos es más en algunos casos necesario asignar claves numéricas a los datos nominales que procesar textos.

Por ejemplo, en lugar de femenino /masculino podemos usar  1/0




En el siguiente artículo examinaremos la cuarta fase de CRISP- DM, acoplándola de igual manera al desarrollo de nuestro piloto.

1. Pete Chapman (NCR), Julian Clinton (SPSS), Randy Kerber (NCR),Thomas Khabaza (SPSS), Thomas Reinartz (DaimlerChrysler),Colin Shearer (SPSS) and Rüdiger Wirth (DaimlerChrysler). CRISP-DM 1.0. 1999,2000.


Copyright © 2013 Dafne Rosso Pelayo. Todos los derechos reservados.