En este blog se exploran las posibilidades de analizar datos y crear modelos basados en la Teoría de la Información usando Powerhouse

Mostrando entradas con la etiqueta Entropía. Mostrar todas las entradas
Mostrando entradas con la etiqueta Entropía. Mostrar todas las entradas

sábado, 11 de febrero de 2012

Un Modelo para separar la Señal del Ruido

Qué bueno sería que los datos contuvieran toda la información necesaria para realizar predicciones, pero lamentablemente no es así. No solamente no contamos con toda la información, además esta información está mezclada con ruido.
La tarea de un modelo predictivo es separar la información útil o señal, del ruido. Veamos un ejemplo paso a paso.
Utilizaré 2 casos similares a fin de comparar sus resultados. Ambos pertenecen a campañas de marketing. El primero proviene de una competencia de Data Mining que organizó la Universidad de Chile en 2005 y que a juzgar por los resultados, no incluía datos reales. El segundo es un ejemplo real de una campaña ofreciendo una nueva tarjeta de crédito a clientes existentes de un banco.

Paso 1: análisis de la información

Una vez que los datos son preparados y las variables son seleccionadas, es posible realizar un análisis infométrico (para conocer más detalles de este tipo de análisis se pueden consultar otros artículos en este mismo blog)
El caso de la Universidad de Chile  muestra que los datos están bastante limpios y es probable que se pueda desarrollar un buen modelo

La información que se necesita para que el modelo sea perfecto es 0.15 bits (este bajo valor indica que existe un desbalance importante, lo cual es cierto ya que sólo aceptan la oferta alrededor de un 2%). Las variables seleccionadas aportan un total de 7.74 bits, pero gran parte de esta información es equívoca, lo que desde el punto de vista de la Teoría de la Información significa que existen muchas maneras de decir lo mismo. Al canal de información ingresan 0.11 bits de la entrada (7.74-7.63) más 0.04 bits de ruido.
La tarea del modelo es separar el 75% de la señal del 25% del ruido.
El caso real es un poco más complejo de modelar
La variable a predecir necesita 0.11 bits de información, indicando como en el caso anterior, que existe un desbalance muy pronunciado (en este caso, sólo el 1.4% de los clientes aceptan la nueva tarjeta). El ruido (54%) supera la señal (46%). Esto implica que es probable que el modelo que utilice estos datos no sea tan bueno como el anterior, ya que por más que haga un buen trabajo separando la señal del ruido, sólo existe un 46% de información.

Paso 2: Evaluación del modelo

Veamos ahora si el análisis infométrico anterior se condice con los resultados de los modelos. Existen varias métricas que pueden utilizarse para evaluar un modelo. En este caso, en donde la variable a predecir contiene 2 estados (Compra/No compra) lo más adecuado puede ser el estadístico KS, o las curvas Lift y ROC.
La siguiente tabla compara los modelos
El rendimiento de los modelos está de acuerdo al análisis llevado a cabo en el paso anterior. Es más, desde mi experiencia jamás tuve la suerte de trabajar con datos tan limpios como los de la Universidad de Chile, por lo que supongo que son datos creados artificialmente para la competencia.
Antes de continuar haré un breve repaso sobre la curva ROC. Quienes deseen más información al respecto pueden consultar excelentes artículos que existen en Internet.
Curva ROC
En medio de la segunda guerra mundial se necesitaba mucha práctica para que los operadores de Radar pudieran distinguir un objeto sólido en una maza de puntos verdes que aparecía en una pequeña pantalla de 7.5 cm de diámetro. A fin de medir el rendimiento de los operadores de Radar, los Británicos inventaron las curvas ROC, que viene del acrónimo Receiver Operator Characteristics (a veces es llamada, erróneamente, Receiver Operating Characteristic curve).
La curva ROC del modelo con datos real luce como sigue:
Si se trata de distinguir un avión, o se trata de distinguir si un cliente comprará o no el producto habrá 4 posibilidades:
Si se predice Positivo y en realidad es Positivo, tenemos un Verdadero Positivo (VP), si se predice Negativo y en realidad es Negativo, tenemos un Verdadero Negativo (VN). Caso contrario tenemos los Falsos Positivos (FP) y los Falsos Negativos (FN).
La curva ROC se concentra en la predicción de los Positivos (por ejemplo, en aquellos clientes que compran) y en cómo el modelo acierta o no. Cuanto mayor sea la diferencia entre los VP  y los FP, mayor será el poder de discriminación que tendrá el operador o el modelo.
El área comprendida entre la parte superior de la diagonal y la curva representa el rendimiento de operador o del modelo, ya que la separación de la curva de la diagonal indica la separación entre los VP y los FP.  A mayor área, mayor rendimiento. Un modelo perfecto tendrá un área del 100%, mientras que el área de un modelo inservible será del 0%.
Señal y Ruido
Ahora viene la parte interesante. Los datos representan algún proceso o sistema que genera una señal mezclada con ruido. Lo que deseamos es separar esta señal del ruido. Resulta que la Teoría de Detección de Señales (Signal Detection Theory) nos permite obtener la distribución de la señal y del ruido a través de la Curva ROC.
Los cálculos necesarios para dibujar estas distribuciones son demasiado complejos para describir en este artículo y tampoco vienen al caso. Lo importante que quiero recalcar es que es posible obtener  una gráfica que  muestra claramente la señal y el ruido además del trabajo del modelo para separarlos.
Señal/Ruido en datos de la Universidad de Chile
El modelo de los datos artificiales muestra una separación bastante buena. La curva roja representa el ruido y la azul la señal, que se crea en relación a la primera. En estos datos el ruido parece estar bastante acotado como lo muestra su baja dispersión. En cambio la señal, está un poco más dispersa. Las medias de la señal y el ruido están bastante alejadas, permitiendo que el modelo realice una buena separación.

Señal/Ruido en datos de tarjeta de crédito

Este caso tiene dos diferencias con respecto al anterior. Por un lado, ambas dispersiones son similares, pero lo más llamativo es que ambas distribuciones tienen sus medias muy cercanas, haciendo demasiado dificultoso la separación de la señal de ruido. Esto explica por qué el modelo sobre los datos de tarjeta de crédito tiene un rendimiento muy inferior al anterior.

Conclusión

Muchas veces nos encontramos con casos en que es muy difícil desarrollar un modelo predictivo que sea útil para el negocio y nos preguntamos si existirá algún algoritmo que sea capaz de lidiar con los datos.
Un análisis de la información, al que Dorian Pyle llama Data Survey(*), es inmensamente útil en estos casos, porque es capaz de mostrar si los datos realmente contienen información. Si no es el caso, entonces ningún algoritmo podrá ser útil para crear un modelo. Las medidas de información establecen límites teóricos que sirven para evaluar el rendimiento de los modelos.
Cuando intentamos modelar datos que no conocemos, el Data Survey construye un mapa que nos guiará por el buen camino.
Una vez construido el modelo, a partir de la Teoría de Detección de Señales y con algunas presunciones (por ejemplo que el ruido y la señal están distribuidas normalmente), es posible visualizar la forma de ambos, la señal y el ruido. Estos gráficos pasan a ser otras herramientas útiles para explicar el rendimiento de un modelo.
Tanto la señal como el ruido están presentes en las variables de entrada, llamadas también variables independientes. La tarea principal del modelo es descubrir la señal aún en presencia del ruido.
(*) Aquellos que deseen una explicación detallada del Data Survey pueden referirse al excelente tratamiento que hace Dorian Pyle en el capítulo 11 de su libro DataPreparation for Data Mining

sábado, 19 de marzo de 2011

La entropía como medida de la información - Parte II

En este artículo contestaré las preguntas planteadas en el anterior.


Cualquier set de datos utilizado en Data Mining puede representarse en un espacio de estados, que no es más que un espacio ordinario pero con tantas dimensiones como variables disponibles. Por ejemplo, supongamos que los datos contienen solamente dos variables. Entonces, cada fila puede representarse como un punto en un espacio dado por las dos variables.

En el gráfico anterior el espacio de estados es de dos dimensiones y se ha representado un sólo estado por medio de un punto dado por las coordenadas 5030 y 130.

La representación de todo el set de datos podría ser algo similar al siguiente gráfico


Si en vez de tener dos variables tuviéramos 3, el gráfico sería en 3 dimensiones, por ejemplo:
Para más de 3 variables es imposible dibujarlo, pero la idea es la misma. Cada fila representa un estado por medio de la combinación de los valores de todas sus variables.

Luego de esta pequeña introducción al espacio de estados, podemos analizar cómo serían las tablas T1 y T2.

En el caso de T1, en donde supuestamente no existe ninguna relación entre las variables, los estados llenarán todo el espacio disponible, por lo tanto podría ser algo similar al siguiente gráfico


En cambio, en el caso de la tabla T2, que se supone que existe algún tipo de relación entre las variables, los estados ya no se dispersan como en el caso de T1 sino que están obligados a mantenerse dentro de alguna forma específica.
El proceso que origina estos datos es el responsable de darle la forma a la nube de puntos.

Ahora podemos responder las preguntas:

¿Qué tabla está más ordenada? T1 tiene desparramado los puntos por todo su espacio, mientras que t2 los tiene confinados en un volumen más pequeño, por lo tanto estarán más ordenados en T2 que en T1. O sea, la relación entre variables genera un orden interno.

Cuánto mayor orden, menor entropía, por lo tanto T1 tendrá mayor entropía que T2

La entropía máxima es la que tiene sus estados dispersos por todo el volumen, o sea cuando las variables no tienen relación entre sí.

En el caso extremo, tendremos una relación perfecta entre las variables y los estados estarán confinados en un volumen muy pequeño. Podemos imaginar el gráfico de la tabla T2 en donde los puntos caen en una línea recta.

La última pregunta es acerca de la información que llevan estas variables. Asumiendo que cada variable lleve algo de información sobre una cuarta variable, ¿qué es preferible? ¿Mayor o menor entropía de las variables independientes?

Acabamos de ver que una menor entropía implica que existe cierta relación entre las variables. Esto significa que parte de la información que trae cada variable es compartida por el resto de las variables (o al menos por una de ellas).

En cambio, si las variables tienen mayor entropía, no existirá relación entre ellas. Por lo tanto toda la información que aporte cada una de las variables será usada plenamente para predecir la cuarta variable.

Los dos últimos párrafos sugieren que un buen data set debería contener variables que estén relacionadas con la variable a predecir, pero no entre sí. De esto se deduce que la entropía de las variables independientes debería ser la mayor posible.


viernes, 25 de febrero de 2011

La entropía como medida de la información

En el artículo anterior mostré cómo es posible medir la información que un grupo de variables lleva sobre otra y en el artículo sobre Información, incertidumbre y sorpresa expliqué cómo medir la información de una variable.


En este artículo mostraré cómo la entropía también es útil cuando medimos la información de un conjunto de variables.

Supongamos que tenemos dos tablas con 3 variables numéricas con similar distribución cada una (podemos asumir una distribución uniforme o normal).

Supongamos que la primer tabla, que llamaré T1, tiene las variables sin ningún tipo de relación entre ellas, mientras que la tabla T2 contiene algún tipo de relación entre las variables.

Voy a dejar algunas preguntas para que las responda el que lo desee y en breve publicaré las respuestas.

¿Qué tabla contiene más “orden”? ¿La T1 o la T2?

¿Cuál de las dos tablas tendrán una entropía mayor? ¿por qué?

¿Cómo debería ser el tipo de relación para que la entropía sea mínima o máxima?

Asumiendo que cada una de las tres variables lleva algo de información sobre una cuarta variable, ¿qué tabla es preferible para armar un modelo de predicción?

Quedo a la espera de respuestas y/o comentarios.

Gracias