Posts filed under ‘Minería de Datos’

Herramientas para la Definición del Modelo

Retomando los últimos dos temas, empezaré por recordar la definición de Minería de Datos:

La minería de datos es un proceso que usa varias herramientas de análisis de datos para descubrir patrones y relaciones en los datos, que pueden ser usados para realizar predicciones válidas.

Ahora me centraré en la última parte de la definición, la de las predicciones válidas. Pero ¿qué es una predicción? El diccionario de la Real Academia Española la define como “Anunciar por revelación, ciencia o conjetura algo que ha de suceder”. En el ámbito de los negocios sería muy aventurado decir que una predicción se realiza por medio de una revelación o de una conjetura, sin embargo sucede. Habrá el responsable que solo confíe en su instinto para la toma de decisiones, y aunque es válido es impreciso, estas revelaciones y conjeturas puede que no signifiquen la pérdida de dinero para una empresa, pero tampoco se puede tomar ventaja de alguna situación en particular. Se sigue la norma de “así esta, así funciona, así se queda”.

En la pasada época navideña tuve que viajar un par de días anteriores a la Noche Buena. En ningún momento se me ocurrió pensar en el caos con el que me enfrentaría en la Terminal de Autobuses. Solo basta comentar que tarde seis horas en conseguir un boleto. Obviamente es molesto, esperar seis horas por un boleto, y más si la mayoría son de pie entre empujones y palabras altisonantes inmerecidas. Muchos nos preguntábamos el por qué no programaban corridas extras, siendo que todos los años pasa lo mismo.

Dos son las causas:

  • No se tiene un modelo predictivo.
  • El actual sistema de decisiones, basado seguramente en conjeturas, fue rebasado por la demanda de viajeros que aumenta anualmente.

Por supuesto, me abstendré de mencionar algunas otras causas que me vienen a la mente, por respeto al lector.

Así pues, tenemos que las predicciones en los negocios son de una inestimable ayuda. Construir toda una estrategia de negocios basados en un modelo predictivo puede catapultar los activos de una empresa. Solo basta imaginar que alguna de las líneas de autobuses hubiera puesto en marcha una estrategia basada en los patrones de venta y las relaciones entre demanda y oferta de rutas, no solo generaría activos tangibles, sino también aquellos intangibles y no medibles como serían una buena imagen de eficiencia y atención al cliente, así como ganarse algunas lealtades de viajeros frecuentes. Ojalá no sea una utopía…

La Minería de Datos tiene varias herramientas que nos ayudarían a alcanzar estos objetivos, siendo el principal producir nuevo conocimiento sobre el cual se pueda actuar o se pueda usar.

Redes Neuronales

Las redes neuronales son de un interés particular para la minería de datos ya que ofrecen un significativo modelo para problemas grandes y complejos, donde puede haber cientos de variables predictivas que interactúan entre sí. Las redes neuronales pueden ser usadas en problemas de clasificación cuando la variable de salida es clasificada como categórica, o pueden usarse para regresiones cuando la variable de salida es continua.

Una red neuronal inicia con una capa de entrada, donde cada nodo corresponde a una variable predictiva. Estos nodos de entrada están conectados a nodos dentro de una capa escondida. Finalmente, esta la capa de salida que consiste en una o más variables de respuesta.

La arquitectura o topología de una red neuronal consiste en el número de nodos y capas escondidas, y como están conectadas. Ya sea el usuario o el software, deben decidir el número de nodos en una capa oculta, la función de activación y sus límites. Es importante para la Minería de Datos que el algoritmo que se use en una red neuronal sea el que reduzca el error en los datos de prueba y no en los datos de entrenamiento, para obtener datos de salida “claros”.

Los usuarios de redes neuronales deben estar conscientes acerca de algunos hechos. Primero, las redes neuronales no son fáciles de interpretar. Segundo, tienden saturar los datos de entrenamiento. Tercero, requieren de una gran cantidad de tiempo de entrenamiento, pero una vez entrenadas, pueden proveer las predicciones muy rápido. Cuarto, requieren que los datos sean cuidadosamente preparados, generalmente, esta preparación requiere depuración, selección y pre-procesamiento. Por último, las redes neuronales tienden a un mejor desempeño cuando el conjunto de datos es suficientemente grande.

Arboles de decisión

Los árboles de decisión son una manera de representar una serie de reglas que culminan en una clase o valor. Los modelos de árboles decisionales son comúnmente usados en la minería de datos para examinar los datos e inducir las reglas para realizar predicciones. Diferentes algoritmos pueden ser usados para construir árboles de decisión tales como la Detección Automática de Interacciones (CHAID), Clasificación y Árboles de Regresión (CART), Quest y C5.0.

Los árboles de decisión crecen a través de una división iterativa de grupos discretos, donde la meta es maximizar la “distancia” entre grupos por cada división. Una de las distinciones entre los diferentes métodos de “división” es como miden esta distancia. Se puede pensar que cada división de los datos en nuevos grupos debe ser diferente uno de otro tanto como sea posible. Esto también es llamado como “purificación” de grupos.

Los árboles de decisión usados para predecir variables categóricas son llamados árboles de clasificación, y los árboles usados para predecir variables continuas son llamados árboles de regresión. Los árboles de decisión manejan datos no numéricos muy bien. La habilidad para aceptar datos categóricos minimiza la cantidad de transformaciones en los datos y la explosión de variables de predicción inherentes en las redes neuronales.

Algunos árboles de clasificación fueron diseñados, y de hecho trabajan mejor cuando las variables de predicción también son categóricas.

Divisiones Regresiones Multivariadas Adaptativas (MARS)

A mediados de los 80’s uno de los inventores del método CART, Jerome H. Friedman, desarrollo un método diseñado para señalar sus deficiencias. Las principales desventajas que deseaba eliminar fueron:

  • Predicciones discontinuas (divisiones difíciles).
  • Dependencia de todas las divisiones de sus antecesoras.
  • Reducción de la interpretabilidad debido a las interacciones.

El algoritmo de MARS consiste en:

Reemplazar la división discontinua en un nodo con una transición modelada por un par de líneas directas. Al final del proceso de construcción del modelo, las líneas directas en cada nodo son reemplazadas con una función libre de obstáculos.

No requiere que nuevas divisiones dependan de divisiones antecesoras.

Desafortunadamente, esto significa que MARS pierda la estructura de árbol de CART y no pueda producir reglas. Por otro lado, MARS automáticamente encuentra y enlista las variables predictivas más importantes así como las interacciones entre estas. MARS también esquematiza la dependencia de la respuesta en cada predicción. El resultado es un herramienta de regresión no linear con iteraciones “astutas”.

Inducción de reglas

Este método consiste en derivar un conjunto de reglas para clasificar casos. Aunque los árboles de decisión pueden producir un conjunto de reglas, los métodos de inducción de reglas generan un conjunto de reglas independientes que no necesariamente formarán un árbol. Debido a que un inductor de reglas no fuerza divisiones en cada nivel y puede adelantarse, puede ser capaz de encontrar diferentes y en algunos casos mejores patrones para la clasificación. A diferencia de los árboles, las reglas generadas pueden no cubrir todas las posibles situaciones, además de que estas pueden tener conflictos en sus predicciones, en cuyo caso es necesario elegir una regla para seguir.

Un método común para resolver conflictos es asignar confiabilidad a las reglas y usar aquella con mayor confiabilidad.

abril 8, 2008 at 4:12 pm Deja un comentario

Construyendo el Modelo

Hace unos días, saque mi auto de la cochera, lo deje estacionado y cuando mi esposa trato de encenderlo el auto no respondió. A pesar de mis desesperados intentos no logre hacerlo funcionar. No había mucho que hacer, puesto que no soy muy hábil en cuestiones mecánicas. Así que hice lo que todo neófito hace, le llame al maestro mecánico que hace mes y medio había arreglado el carro por la misma razón que no quería arrancar esa mañana.

Extrañado por que pudiera ser una falla recurrente, ya que el maestro es de los pocos mecánicos honestos que conozco, esperaba paciente a que llegara. Pasadas cuatro horas y en mi tercera llamada, un maestro completamente ebrio me decía que mi carro iba a quedar bien, que no me preocupase. Me resigne y empecé la búsqueda de otro mecánico. Fue una prueba de paciencia, ya que visite tres mecánicos que me negaron el servicio porque ya era la hora de la comida y en la tarde ya no abrían, encontré dos talleres cerrados y finalmente encontré un taller abierto donde el mecánico me pidió mi dirección, quedando muy formal de visitarme en una hora. Pasada ésta, no se presento. Cuando fui nuevamente al taller, lo encontré cerrado.

Completamente abatido, decidí meter el auto a la cochera. Le pedí a mi suegro que me prestará su batería para hacerlo arrancar o que me ayudara a empujarlo, y nos decidimos a ponerle la batería de su auto. Curiosamente mi auto siguió sin responder, así que mi suegro decidió limpiar y golpear las terminales de la batería. El auto funcionó. Lo metí a la cochera, pero ahora yo limpie bien las terminales, apreté bien las tuercas y lo volví a arrancar. El auto funcionó sin problemas desde aquel día hasta la fecha.

¿Qué hace un relato de mis desventuras en un sitio dedicado a las Tecnologías de la Información? Tal vez, distraernos y adivinar cuantas caguamas se tomo mi estimado maestro para emborracharse en un lapso de dos horas. Ese es uno de los propósitos de esta anécdota. El otro es regocijarme por los doscientos pesos que me ahorre.

El tercer propósito es reflexionar en las oportunidades que un negocio desaprovecha por desconocer o carecer de una herramienta que les permita tomar una decisión adecuada, descubrir una potencial forma de crecer o enfocar los esfuerzos. Si alguno de estos mecánicos que se negaron a revisar mi auto hubiera conocido una herramienta psicológica para notar mi desesperación combinada con mi ignorancia, además de con un par de preguntas diagnosticar la falla; esta herramienta les hubiera predicho que se trataba de una oportunidad de ganar dinero con un mínimo esfuerzo, pero todos hicieron lo que estaban acostumbrados a hacer.

Enfoquemos ahora el tema de la minería de datos. Continuando con el artículo anterior vamos a dar ahora un vistazo a la forma en cómo se preparan los datos para ser analizados y que estos sean útiles en cuanto al propósito de la minería de datos: realizar predicciones válidas.

Antes de construir un modelo hay que tener claro que se deben entender los datos.

Los datos pueden ser continuos con un valor numérico (p.e. ventas) o categóricos dentro de clases (p.e. rojo, azul, verde). Los datos categóricos pueden ser definidos como ordinales teniendo un orden significativo (p.e. alto/bajo), o nominales, estos son sin orden alguno (p.e. códigos postales).

Las gráficas y otras herramientas de visualización son una buena ayuda en la preparación de los datos. Patrones, relaciones, valores excepcionales y valores faltantes son frecuentemente más fáciles de percibir cuando son mostrados gráficamente.

Clustering

La técnica conocida como clustering divide la base de datos en diferentes grupos. La meta del clustering es encontrar grupos que son diferentes entre sí y cuales miembros son similares el uno del otro. A diferencia de la clasificación, no se sabe donde habrá clusters o con que atributos de los datos se harán los clusters. Consecuentemente, alguien con gran conocimiento del negocio debe interpretar los clusters. Con frecuencia si es necesario modificar el clustering excluyendo variables que han sido usadas para agrupar, porque mediante este examen el usuario identifica que datos son irrelevantes o sin significado. Después de haber encontrado clusters que segmenten razonablemente la base de datos, estos pueden ser usados para clasificar nuevos datos.

Algunos de los algoritmos más usados para realizar clustering son los Mapas de Presentación de Kohonen y los K-Significativos. Estos algoritmos se tratarán en posteriores artículos. No hay que confundir clustering con segmentación. La segmentación se usa para identificar grupos que tienen características comunes. El clustering es un modo de segmentar datos en grupos que no están previamente definidos, mientras que la clasificación es un modo de segmentar datos asignándolos a grupos que están previamente definidos.

Análisis de relaciones

Trata sobre la exploración de datos con el fin de identificar relaciones entre valores dentro de una base de datos. Las dos técnicas más comunes para el análisis de relaciones son el descubrimiento de asociaciones y el descubrimiento de secuencias.

EL descubrimiento de asociaciones encuentra reglas en los elementos que aparecen juntos en un evento tal como una compra. El descubrimiento de secuencias es muy similar, en este una secuencia es una asociación relacionada con el tiempo. Las asociaciones se denotan como A=>B, donde A es el antecedente y B es el consecuente.

Usaremos este ejemplo como regla de asociación: “Si una persona compra un martillo entonces comprará clavos”; donde A es comprar martillo y B es comprar clavos.

Es fácil determinar la proporción de transacciones que contienen un elemento en particular o un conjunto de estos: simplemente hay que contarlos. La frecuencia con que una asociación en particular aparece en la base de datos es llamada prevalencia.

Si dijéramos que 15 transacciones de 1000 posibles consisten en “martillo y clavos” la prevalencia para esta asociación sería de 1.5 %.

Para descubrir relaciones significativas, debemos observar también la relativa frecuencia con que ocurren los elementos y sus combinaciones.

¿Si una persona compra un martillo que tan frecuente es que compre clavos?

Otro término para la predicción condicionada es la confianza. La confianza es calculada como una razón ( frecuencia de A y B / frecuencia de A ).

Especifiquemos con mayor detalle nuestra hipotética base de datos para ilustrar estos conceptos con mayor detalle:

Total de transacciones en ferretería: 1000

Veces que se repite “martillo”: 50

Veces que se repite “clavos”: 80

Veces que se repite “madera”: 20

Veces que se repite “martillo” y “clavos”: 15

Veces que se repite “clavos” y “madera”: 10

Veces que se repite “martillo” y “madera”: 10

Veces que se repite “martillo”, “clavos” y “madera”: 5

Ahora se puede calcular:

Prevalencia de “martillo” y “clavos” = 1.5% (15/1000)

Prevalencia de “martillo”, “clavos” y “madera” = 0.5% (5/1000)

Confianza de “martillo => clavos” = 30% (15/50)

Confianza de “clavos => martillo” = 19% (15/80)

Confianza de “martillo y clavos => madera” = 33% (5/15)

Confianza de “madera => martillo y clavos” = 25%(5/20)

Carga, es otra medida del poder de una asociación. Entre mayor sea la carga, mayor será la influencia de que cuando el antecedente ocurra el consecuente también lo hará. Carga es calculada como la razón ( confianza de A=>B / frecuencia de B ).

Carga de “martillo” => “clavos”: 3.75 (30%/8%)

Carga de “martillo y clavos” => “madera”: 16.5 (33%/2%)

Los algoritmos de asociación encuentran estas reglas realizando la ordenación de los datos mientras cuentan las ocurrencias y así calculan el nivel de confianza. La eficiencia con que lo hagan es lo que los distingue, esto es importante a causa de la explosión combinacional que resulta en un enorme número de reglas. Algunos algoritmos crean una base de datos de reglas, factores de confianza y prevalencia“martillo” y “clavos” que pueden ser consultados. Otro atributo de los generadores de reglas de asociación es la habilidad de especificar elementos de jerarquía. Un elemento jerárquico permite controlar el nivel de agregación y experimentar con diferentes niveles. Es importante recordar que las reglas de secuencia o asociación no son realmente reglas, sino descripciones de las relaciones en una base de datos.

No hay una manera formal de probar los modelos en otros datos para consolidar la predictibilidad de las reglas. En su lugar, se asume implícitamente que el comportamiento pasado continuara en el futuro.

Los métodos gráficos pueden ser muy útiles para ver la estructura de las relaciones. En la figura siguiente cada uno de los círculos representa un valor o un evento. Las líneas que los conectan representan una relación. Las líneas más gruesas representan relaciones frecuentes o fuertes, con énfasis en relaciones potencialmente más importantes para las asociaciones.

En resumen, el análisis y la experimentación usualmente son requeridos para lograr los beneficios de las reglas de asociación.

abril 8, 2008 at 4:04 pm Deja un comentario

Introducción a la Minería de Datos

De sobra es de todos conocido el popular refrán que a la letra dice “Perro viejo no aprende nuevos trucos”. Sin duda, este dicho se refiere al inexorable paso del tiempo y como éste afecta nuestra capacidad intelectual, y nuestro deseo de explorar nuevos paradigmas. Si ya hemos probado un camino y lo conocemos a profundidad ¿por qué no recorrerlo tantas veces como sea necesario?

Pero este popular dicho, no solo se aplica al efecto del tiempo sobre el ser humano, también puede aplicarse al efecto de los procesos internos de cualquier negocio. Así, tenemos negocios que navegan sobre aguas conocidas pero con barcazas a punto de hundirse.

México se encuentra rezagado en materia informática, pero los negocios empiezan a descubrir y usar herramientas de software, que si bien no son nuevas, últimamente están adquiriendo el impulso como una instrumento estratégico útil que además de mantener a flote la barcaza, también ayude a convertirla en una embarcación capaz de navegar no solo en aguas conocidas sino también en las inexploradas.

La minería de datos, aunque no es una panacea, si es una técnica que proporciona información útil para redefinir o encausar los objetivos globales de un negocio. A lo largo del mundo varias organizaciones desean innovar y están usando la minería de datos para localizar y satisfacer clientes de gran valor, reconfigurar su oferta de productos, y minimizar errores.

La minería de datos es un proceso que usa varias herramientas de análisis de datos para descubrir patrones y relaciones en los datos, que pueden ser usados para realizar predicciones válidas.

Los pasos para realizar este proceso son:

  1. Describir los datos
  2. Construir un modelo predictivo
  3. Verificar el modelo

Es importante comprender que la minería de datos es una herramienta y no una varita mágica. No elimina la necesidad de conocer el negocio y los datos, al igual que en el ejemplo de la barcaza, se le pueden proveer los mejores mapas de navegación pero si no sabe las capacidades de la embarcación es improbable que pueda navegar tranquilamente. Por lo tanto, la minería de datos es un asistente para el análisis de datos, sus relaciones y el descubrimiento de patrones.

Minería de datos y OLAP

Una de las preguntas más comunes en el procesamiento de datos es la diferencia entre OLAP y minería de datos. Podemos adelantar que son dos herramientas diferentes que se complementan.

OLAP es parte de una gama de herramientas de toma de decisiones. Las consultas tradicionales y los reportes describen lo que hay en la base de datos. OLAP va más allá, es usado para responder porque ciertas cosas son ciertas. Un analista genera una serie de patrones y relaciones hipotéticas usando consultas(queries) para aprobarlos o rechazarlos. OLAP es en esencia un proceso deductivo.

Pero, ¿qué pasa cuando el número de variables por analizar es por docenas o incluso cientos? Se vuelve más difícil el encontrar una buena hipótesis, analizar la base de datos con OLAP, verificarla o desaprobarla.

La minería de datos es diferente de OLAP porque en lugar de verificar patrones hipotéticos, usa los mismos datos para descubrir tales patrones. Es en esencia un proceso inductivo.

Minería de datos exitosa.

Hay dos llaves para tener éxito con la minería de datos. La primera es llegar a un modelo preciso del problema que se está tratando de resolver. Posteriormente analizaremos conceptos como Clustering y Análisis de Relaciones. La segunda es interpretar y usar los datos. Conoceremos varios algoritmos como las Redes Neuronales, Árboles De Decisión, Inducción De Reglas, K-Vecino Cercano, Regresión Logística, Análisis de Discriminantes y Algoritmos Genéticos.

Referencias.

Introduction To Data Mining And Knowledge Discovery. 3rd. Edition. Two Crows Corporation.

An Introduction To Data Mining. Kurt Thearling

abril 8, 2008 at 4:00 pm Deja un comentario


Entradas recientes

Comentarios recientes


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.