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.