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

lunes, 22 de octubre de 2007

Datos de prueba contaminados

Una de las claves para asegurarnos que un modelo tendrá el rendimiento esperado cuando lo pongamos a trabajar con datos nuevos es haberlo probado con datos históricos que no se hayan usado absolutamente para nada.

Esto parece una obviedad pero muchas veces se toman ciertas decisiones que terminan contaminando los datos de prueba.

Hay dos maneras de contaminar los datos de prueba, en el armado de los mismos y en las pruebas del modelo.

Armado de los datos de prueba

Los datos de prueba (test set) deben ser armados de la misma manera en que se armaron los datos de entrenamiento (training set). Quiero decir, si a una variable se la transformó de una determinada manera, por ejemplo, se la transformó de continua a discreta utilizando determinados rangos, a la misma variable de los datos de prueba se la debe tranformar usando los mismos rangos. Esto está claro y rara vez trae inconvenientes. El problema está en la manera en que se obtuvo la transformación. En nuestro ejemplo, cómo se obtuvieron los rangos.

Los datos de prueba no deben ser usados para obtener una transformación.

Es imprescindible separar los datos de prueba antes de obtener cualquier transformación que se desee aplicar tanto a los datos de entrenamiento como a los de prueba.

El primer paso de cualquier proyecto de Data Mining debe ser separar los datos de entrenamiento y de prueba. Esta separación debe ser al azar y sin reemplazo.

Luego, si se desea trabajar los datos para encontrar las mejores transformaciones, se deben usar sólo los datos de entrenamiento. Una vez que se encuentran todos los parámetros necesarios para transformar las variables, se usarán estos mismos parámetros para transformar las variables de los datos de prueba.

Uso de los datos de prueba

Una vez que se cuenta con los datos de entrenamiento y de prueba se deben usar los datos de entrenamiento para crear el modelo y solamente cuando uno está convencido de tener el modelo final, recién ahora será el momento de usar los datos de prueba para estimar rendimiento que el modelo tendrá cuando trabaje con datos nuevos.

Si la herramienta que se usa para encontrar el modelo necesita de un conjunto de datos de prueba, entonces es necesario que haya dos tablas de datos de prueba: una para que use la herramienta de modelado y otra que nos reservamos para la prueba final.

Por ejemplo, las redes neuronales necesitan un conjunto de datos de prueba, normalmente llamado test set, para evitar que la red copie el ruido (Para una discusión detallada de lo que significa el ruido en los datos se puede consultar ¿Qué es el ruido?). A medida que la red va modificando sus ponderadores (weights) probando una y otra vez los datos de entrenamiento, se corre el riesgo que la red aprenda detalles que sólo aparecen en estos datos. Para evitar este comportamiento no deseable, una vez cada n ciclos de entrenamiento, a la red se la prueba con otros datos, los datos de prueba, para confirmar que su rendimiento sigue mejorando no solo en los datos de entrenamiento sino con otros independientes. Cuando, el rendimiento sobre los datos de prueba deja de mejorar, se detiene el entrenamiento y la red queda entrenada.

El problema es que los datos usados durante el entrenamiento, de alguna manera formaron parte de este entrenamiento y de esta manera quedaron contaminados. Así, que en el caso de las redes neuronales es necesario un tercer conjunto de prueba. El rendimiento de la red será estimado usando este tercer conjunto de datos.

Powerhouse no necesita de datos de prueba para crear los modelos. Los algoritmos basados en la Teoría de la Información son tan simples y directos que no requieren que los datos de entrenamiento sean evaluados una y otra vez.

De todas maneras, si usando Powerhouse o alguna otra herramienta que no necesita datos de prueba (como una regresión lineal por ejemplo) se usan los datos de prueba para elegir el mejor modelo, entonces estos datos también se contaminan y se debería contar con un tercer conjunto de datos para la prueba final.

En resumen, los datos de prueba final (a veces llamados datos de evaluación) deben usarse sólo una vez, ya que al ser usados quedarán automáticamente contaminados.

Una manera de obtener nuevos datos de prueba es volver a empezar todo desde el principio.

No hay comentarios: