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.
No hay comentarios:
Publicar un comentario