¿Qué es Data Mining?
Creo que la trillada explicación “es la extracción de información
previamente desconocida, de grandes volúmenes de datos” sólo tiene
sentido para aquellos que ya saben qué es. Para quien no lo sabe, son
palabras conocidas pero que juntas no le evocan ninguna imagen o
experiencia que le sea familiar, es decir, no se entiende.
Así
que estando en los comienzos de este blog, me parece oportuno lanzarme a
la difícil tarea de definir su objeto principal, a mi propio y
subjetivo modo, buscando ser abarcativo pero sencillo, y lo menos
técnico posible. Aquí vamos:
¿Qué es Data Mining?
- "Data Mining" (Minería de Datos) se refiere a un conjunto de técnicas de base estadística y algorítmica (algoritmo = procedimiento computarizable)
- organizado con un método
- que permite analizar montañas de datos
- buscando relaciones sutiles (no evidentes) existentes en estos datos
- En base a estas relaciones se construyen modelos
- En base a los modelos se pueden tomar mejores decisiones
¿Qué es un modelo?
- Un modelo es una representación simplificada de la realidad, que sin embargo mantiene lo que es “importante”
- En base a cómo funciona el modelo, se pueden inferir aspectos del funcionamiento de la realidad, que siempre es mucho más compleja
¿Cuáles son los tipos de modelos más importantes en Data Mining?
- Modelos Explicativos
- --- Permiten encontrar qué factores influyen en un resultado
- --- Permite agrupar resultados similares
- Modelos Predictivos
- --- En base a los patrones de comportamiento previo, permite identificar cuál es el comportamiento futuro más probable
- --- En base a una clasificación realizada sobre un conjunto de casos conocidos, permite asignarle una clase a un caso nuevo
¿Qué aplicaciones concretas tiene Data Mining? Ejemplos:
- Market basket analysis: ¿qué productos se venden juntos?
- Modelo de fuga (churn o attrition): ¿qué clientes están por abandonar un servicio?
- Segmentación: ¿cuáles son los clientes que se comportan de manera similar? ¿qué prospectos se asemejan a los que son más valiosos para el negocio?
- ¿Cuáles son los factores que más influyen en un proceso? (de producción, logística, ventas, etc.)
- Detección de fraudes
- Personalización de publicidad en Internet
- Predicción de fallas de maquinaria
- Predicción de la demanda
- Predicción del flujo de caja
- Reconocimiento de imágenes
- Evaluación de riesgos crediticios
- Detección de spam
- Estudios genéticos
- Catalogación de cuerpos celestes en astronomía
- Análisis de documentos no estructurados (text mining y web mining)
- Etc., etc., etc…
Limitaciones
- No pueden analizarse datos que no se tienen
- --- Un posible resultado de un proyecto de DM es la determinación de los datos que deben empezar a recolectarse
- Si los datos son erróneos, las predicciones también lo serán
- --- Aunque las técnicas son bastante resistentes a una cierta cantidad de “ruido”
¿Qué NO es Data Mining?
- Recolección de información personal
- --- Muchas veces se le dice Data Mining a la actividad de los servicios de inteligencia (de gobiernos o empresas). Estas organizaciones probablemente usen Data Mining, pero la etapa recolección de información sin el consentimiento de sus dueños no involucra modelos ni técnicas estadísticas o algorítmicas, por lo que lo dejaría fuera de mi definición.
- Recolección de mails de páginas web
- --- En los sitios de ofertas de trabajo habitualmente surgen requerimientos de programas que recorran un sitio web extrayendo los mails (o los detalles de los productos de un catálogo, o cosa similar). Los llaman "trabajos de Data Mining", pero tampoco tiene nada que ver con lo que estamos tratando. (Tiene un nombre más preciso: web scraping)
¿Se entendió? :) Ahora para satisfacer al lector más avanzado, dos apartaditos más técnicos:
¿Cuáles son las técnicas más importantes que se usan en Data Mining? Ordenadas por uso (de mayor a menor) según reporte de 2008 de Rexer Analytics:
- Regresiones (lineal, logística, etc.)
- Árboles de Decisión
- Análisis de conglomerados (cluster analysis)
- Series de tiempo
- Redes Neuronales
- Reglas de asociación
- Análisis factorial
- Máquinas de soporte vectorial (Support Vector Machines, SVMs)
- Redes Bayesianas
- Análisis de supervivencia (link a artículo en inglés)
- Reglas de inducción (link a artículo en inglés)
- Análisis de redes sociales
- Algoritmos genéticos
- Group Method of Data Handling (GMDH) (link a artículo en inglés)
¿Cuáles son los softwares más importantes que se usan en Data Mining? Ordenados por uso (de mayor a menor) según el mismo reporte:
lunes 20 de abril de 2009
Amor por los árboles (de decisión)
zyxo en su interesante blog Mixotricha, escribió un muy buen artículo relativo a las ventajas de los árboles de decisión y el control del overfitting ( sobreentrenamiento), del cual me tomé la libertad de traducir y parafrasear las partes que me parecieron más interesantes:
Desventajas de los árboles de decisión:
- Overfitting (¡pero se puede controlar y usar para mejorar la calidad del modelo!)
Ventajas:
- Legibilidad del resultado: Simples sentencias IF THEN
- Algoritmo simple
- Robustez: El preprocesamiento y la limpieza de datos son un trabajo engorroso, ¡¡pero los árboles funcionan bien sin ellos!!
- Flexibilidad: El manejo de los parámetros permite construir árboles desde muy pequeños a muy grandes
- Overfitting: Si se lo controla apropiadamente
- Parametrización sencilla y poderosa
- Posibilidad de modelos grandes que dan resultados muy "detallados"
- Aprendizaje débil (weak learner), por lo que pueden ganar mucho con técnicas de ensamble como bagging.
Luego
el artículo de zyxo habla del bagging, lo que me gustaría dejar para
otra oportunidad. Salto al manejo de parámetros para controlar el
overfitting:
-
Olvídese de la profundidad máxima, establézcala lo más alta posible.
Nunca debe ser un criterio de parada si se busca calidad (no así si se
busca un modelo más simple, pequeño y legible con propósitos de
documentación).
- Use los tamaños mínimos de nodos terminales y de apertura (min child/parent node size en SPSS/Clementine).
Estableciendo estos valores muy altos se obtienen árboles pequeños con
poco overfitting pero baja calidad. Con valores demasiado pequeños se
obtienen árboles enormes con muchísimo overfitting. Es necesario
experimentar un poco y evaluar la calidad contra datos de prueba.
Para
encontrar los parámetros óptimos el artículo habla de los resultados de
la evaluación del bagging, pero en caso de tener un sólo árbol el
criterio general sería bajar progresivamente los valores de los tamaños
mínimos mientras la evaluación en los datos de prueba dé cada vez mejor,
hasta que dé peor (o empiece a dar resultados erráticos), y en ese
punto volver un paso atrás y quedarse con los parámetros de dicho paso.
Agrego algunas otras consideraciones:
-
Para un árbol de decisión la variable objetivo ideal es binaria:
POSITIVO / NEGATIVO. Si la variable es categórica convendría hacer
tantos modelos como categorías, tomando como positiva una categoría a la
vez, y las demás como negativas. Luego se deberían ensamblar los
distintos modelos en uno solo (con otro árbol u otro tipo de modelo). No
es la herramienta más adecuada para predecir variables numéricas.
-
Tiene manejo de los valores nulos (o missing). Al dividir un nodo por
una de las variables, simplemente asigna los casos en que el valor de
esa variable es nulo a una de las ramas de la división. Pero atención,
esto provoca que se consideren todos los nulos de igual forma (como si
tuvieran el mismo valor), algo que en algunos casos no es satisfactorio y
requiere una preparación previa más elaborada.
- Soporta una buena cantidad de desbalanceo en la variable objetivo.
-
Clasifica (da algún resultado para) cualquier caso que se evalúe, aún
si no se le proporcionó ninguno similar durante el entrenamiento.
-
Cuidado con las interacciones entre variables. El algoritmo considera
de a una variable por vez, y va cortando el espacio de soluciones en
"rectángulos", por lo que cualquier interacción entre variables que
defina una región importante con forma no rectangular será pobremente
representada. Hay técnicas para detectar esto y generar variables
adicionales que reflejen estas interacciones para que el árbol las
aproveche.
- No existe un único árbol que sea la mejor
solución. Pequeñas variaciones en el dataset (como un corte al azar
diferente para definir entrenamiento y prueba) pueden dar árboles
completamente diferentes.
- Otro parámetro a tener en cuenta
es la selección de la variable inicial, la que divide el nodo raíz. A
veces cambiándola manualmente se pueden obtener mejores resultados (o
más significativos en el dominio del problema) que dejando que la
seleccione automáticamente el algoritmo.
- Acepta variables de entrada de tipo categórico y/o numérico.
- No es afectado por los outliers.
martes 14 de abril de 2009
Punto de corte en modelo de fuga
Si tomamos el modelo de fuga (churn o attrition) como un problema
de ordenamiento, es claro que la parte más difícil es establecer el
orden de los clientes de acuerdo a su propensión estimada a cancelar sus
productos o servicios. Esto puede hacerse con un score calculado a
partir de un árbol de decisión, un generador de reglas de decisión, una
red neuronal, etc.
Ahora, una vez ordenados
los clientes, ¿sobre cuántos se debe efectuar la acción de retención?
Una sencilla respuesta es definirlo por el presupuesto que tiene
destinado el departamento de Marketing. Si cada acción cuesta $10, y el
presupuesto es de $40.000, simplemente se toman los primeros 4.000
clientes de la lista ordenada y se realiza la acción sobre ellos.
El
problema con este enfoque es que no toma en cuenta la ganancia esperada
de cada cliente de la lista, y puede quedarse corto (no llegando a
efectuar la acción sobre clientes que tienen ganancia esperada
positiva), o peor aún, pasarse del punto de corte óptimo, efectuando la
acción sobre clientes que tienen ganancia esperada negativa. Veámoslo
con un ejemplo:
Costo de acción: $10
Ganancia por acierto de predicción: $500
Saldo por acierto: $490
Clientes: 100.000
Clientes que se fugarían: 1.000 (1% del total)
Clientes | Fuga | % | |
Nodo 1 | 200 | 50 | 25,00% |
Nodo 2 | 1.000 | 100 | 10,00% |
Nodo 3 | 2.500 | 200 | 8,00% |
Nodo 4 | 80.000 | 600 | 0,75% |
Nodo 5 | 16.300 | 50 | 0,31% |
Total | 100.000 | 1.000 | 1,00% |
La
ganancia esperada para cada nodo se puede calcular como la ganancia de
los aciertos, menos el costo de realizar la acción sobre el total de
clientes del nodo. Para el nodo 1 esto sería $500 * 50 - $10 * 200 =
$38.000. Dividiendo esto por el total de clientes se obtiene una
ganancia esperada por cada cliente del nodo: $38.000/200 = $190.
Completando la tabla anterior:
Clientes | Fuga | % | Ganancia esperada | G.E. por cliente | |
Nodo 1 | 200 | 50 | 25,00% | $38.000 | $190 |
Nodo 2 | 1.000 | 100 | 10,00% | $70.000 | $70 |
Nodo 3 | 2.500 | 200 | 8,00% | $135.000 | $54 |
Nodo 4 | 80.000 | 600 | 0,75% | -$320.000 | -$4 |
Nodo 5 | 16.300 | 50 | 0,31% | -$123.000 | -$8 |
Total | 100.000 | 1.000 | 1,00% |
Entonces,
si se toman sólo los nodos de ganancia esperada positiva, se efectuaría
la acción sobre 3.700 clientes, obteniéndose una ganancia de $243.000
(sumas de los valores de los 3 primeros nodos). Si se continúa
efectuando la acción sobre 300 clientes más (para llegar a 4.000), al
pertenecer al siguiente nodo estos tienen una ganacia esperada de -$4,
dando un total de -$1.200, disminuyendo la ganancia total a $241.800.
Convendría ahorrar los $3.000 que se gastarían en estos 300 clientes y
sumarlos a la ganancia de los nodos positivos, dando un total general
del proyecto de +$246.000.
lunes 13 de abril de 2009
SPSS renombra sus productos
En la nueva versión de sus productos prevista para 2010, SPSS
cambia sus nombres unificándolos bajo el prefijo PASW (Predictive
Analytics Software):
SPSS Statistic -> PASW Statistics 17
Clementine -> PASW Modeler 13
Dimensions mrStudio -> PASW Data Collection Base
SPSS Predictive Enterprise Services Base Services -> PASW Collaboration Services
etc...
Todo más claro, aunque "Clementine" es un nombre mucho más lindo...
KDD Cup 2009
¡Todavía estamos a tiempo de participar! Al menos en el desafío "lento",
cuya fecha límite es el 11 de mayo (el "rápido" terminó el 10 de
abril).
Se trata de desarrollar un modelo (o varios)
para predecir fuga (churn o attrition), afinidad (appetency, compra de
nuevos productos o servicios) y venta cruzada (up-selling, compra de
productos adicionales) en una base de datos de clientes de una empresa
francesa de telefonía.
Hay un desafío rápido y uno lento, y a la vez un dataset grande (15.000 variables) y uno pequeño (230 variables).
El
desafío rápido busca evaluar la capacidad de obtener buenas
predicciones sobre el dataset grande en un tiempo limitado (5 días). El
desafío lento da más tiempo y se puede trabajar sobre la base grande o
sobre la pequeña (pensada para aquellos que no cuentan con equipo tan
poderosos).
Yo ya me bajé el dataset pequeño, espero tener tiempo para desarrollar los modelos y participar. :)
Presentación
Este blog tiene por objetivo presentar (e idealmente discutir) ideas, softwares y noticias relacionadas con Data Mining (o Minería de Datos), Aprendizaje Automático (Machine Learning) y temas afines, desde la perspectiva de un estudiante argentino del tema.Está dirigido a aquellos que estén estudiando el tema (pienso en las alumnos de las maestrías que se dictan en la UBA, la Universidad Austral, y la Universidad de Bologna), trabajen en el área, o simplemente tengan un interés autodidacta. En algunos artículos se asume un conocimiento mínimo de los softwares más utilizados.
Cada artículo está escrito en forma independiente, es decir, no da por sentado que se leyeron los anteriores, y de ser necesario incluye links a las referencias pertinentes.
El sistema de comentarios permite escribir como usuario registrado o como anónimo, y desde ya se agradece cualquier tipo de feedback. De todas maneras me reservo el derecho de eliminar sin previo aviso todo aquello que no esté relacionado con el tópico en cuestión (especialmente el spam).
Fuente : http://parramining.blogspot.com/2009_04_01_archive.html
El Autor
Mi nombre es Andrés Parra, tengo formación en Ingeniería en Computación, vivo en Buenos Aires, y estoy cursando la maestría de la UBA. No estoy trabajando en el área, aunque espero hacerlo pronto. Estos temas me apasionan como a quien gusta de resolver crucigramas y acertijos. Espero poder transmitir parte de esa inquietud. :)
Mi correo es parra.andres arroba gmail.com, para lo que guste mandar.