Вы находитесь на странице: 1из 9

Nombre de la materia

Introduccin a la modelacin y series de tiempo

Nombre de la Licenciatura
Master en ciencia de datos

Nombre del alumno


Carlos de Jess Rodrguez Mndez

Matrcula
000046970

Nombre de la Tarea
Sobreajuste de funciones y control de
______complejidad

Unidad #2
Ajustando datos a un modelo

Nombre del Tutor


Guillermo de Jess Motilla Zapata

Fecha
07/09/2017
SOBRE AJUSTE Y CONTROL DE COMPLEJIDAD

Introduccin: Sobreajuste, el enemigo de las buenas predicciones

Nate Silver, en La seal y el ruido, habla de las dificultades que afrontamos cuando tratamos de
hacer buenas predicciones. Siguiendo la metfora del ttulo de su libro, la principal de ellas
es confundir seal con ruido: desarrollamos un modelo predictivo y tratamos de ajustarlo a los
datos que tenemos, pero, en el afn de afinar el modelo al mximo, acabamos ajustando el
modelo a las imperfecciones de los datos que tenemos, empeorando nuestra capacidad
predictiva.

Este fenmeno se conoce como over-fitting o sobreajuste. Un modelo predictivo debe


capturar la esencia del fenmeno que describe, nada ms. Christopher M. Bishop, en su
libro Pattern Recognition and Machine Learning (Springer, 2006) nos ofrece un gran ejemplo de
este problema, con un enfoque muy matemtico

Un modelo de datos es una expresin matemtica que describe cmo se relacionan un


conjunto de variables. Los modelos se crean y se ajustan a partir de un conjunto completo de
datos, en los que tenemos todas las variables de inters. Una vez ajustado, el modelo es til
para poder predecir alguna de las variables a partir de la observacin de otras.
Por ejemplo: podemos crear un modelo que relaciona el mes del ao con la temperatura media
diaria. Para crear y ajustar el modelo, podramos observar datos de las temperaturas de los
ltimos 50 aos. Una vez creado el modelo, podemos usarlo para predecir qu temperatura
media puedo esperar que se produzca en un mes concreto durante el prximo ao.
En este caso, el mes sera la variable de entrada (x) y la temperatura la variable objetivo o
variable predicha (t).

Dependiendo del fenmeno investigado, la relacin entre variables de entrada y variables


objetivo es ms o menos fuerte. Esa relacin define la capacidad predictiva del modelo. Rara

2
vez un modelo puede describir por completo un fenmeno, lo que sera un modelo determinista:
lo habitual es que las predicciones sean imperfectas.

Por ejemplo, los modelos meteorolgicos toman como variables de entrada la temperatura,
humedad, presin atmosfrica y otros datos similares para predecir la temperatura futura y la
probabilidad de lluvia. Los modelos meteorolgicos no son infalibles. Cuando el modelo trata de
predecir el tiempo con ms das de antelacin, ms puede fallar.

Datos sintticos
Bishop nos propone un interesante ejercicio para explicar el over-fitting. Para ello, crea una
relacin artificial entre una variable de entrada x y una variable objetivo t, lo que permite crear
datos sintticos. Posteriormente, trata de disear un modelo que describa esos datos sin usar
informacin de cmo han sido creados.

Para crear los datos sintticos, Bishop usa una funcin conocida, t=sin(2x), a la cual aade
un poco de ruido, sumando a la variable tuna cierta cantidad aleatoria. Usando este mtodo,
generamos un conjunto de datos formado por 10 valores de x uniformemente distribuidos
entre 0 y 1 con sus correspondientes valores de t.
El siguiente grfico muestra estos datos:

3
Los puntos rojos son las parejas de valores (x,t). La lnea azul discontinua muestra la funcin
sin(2x)usada para generar los datos. La distancia entre los puntos rojos y la lnea discontinua
es el ruido aleatorio que hemos aadido.

La forma en que hemos generado estos datos captura una propiedad muy habitual de los datos
que encontramos en problemas reales: poseen una regularidad subyacente, que es la que
queremos capturar y modelizar, pero al observar un conjunto individual de datos estos se ven
corrompidos por algn tipo de ruido aleatorio.

Este ruido puede surgir por la propia naturaleza aleatoria del proceso, pero lo ms habitual es
que se deba a que no estamos observando alguna fuente de variabilidad que afecta al
fenmeno estudiado.

Un modelo para nuestros datos

Supongamos que observamos nicamente los puntos rojos y que desconocemos que provienen
de una funcin sinusoidal. Nuestro propsito es crear un modelo, ajustarlo (entrenarlo) con los
datos que tenemos (las 10 parejas de valores de x y t descritos por los puntos rojos) con el
objetivo de poder predecir para nuevos valores de x, qu valores de t vamos a observar.

Este objetivo es ambicioso: en realidad lo que queremos es descubrir la funcin sin(2x) a


partir de un conjunto limitado de datos (10 puntos) y corrompidos (debido al ruido).

Para disear nuestro modelo vamos a usar una tcnica conocida como ajuste de curvas (curve
fitting). En concreto, trataremos de ajustarnos a los datos usando una funcin polinmica como
la siguiente

4
donde M es el orden del polinomio y xj es el valor de x elevado la potencia j. Los
parmetros w0 ,w1 ,...,wM los podemos referenciar de forma agupada como un vector w.

Ajustar el modelo (entrenarlo)


Una vez hemos definido la estructura de nuestro modelo, tenemos que entrenarlo con los
datos que tenemos (en este caso, los 10 puntos rojos). El objetivo es encontrar los valores de
los parmetros w0 ,w1 ,...,wM que mejor relacionan x y t.
Esto se puede hacer minimizando una funcin de error. Una eleccin habitual es usar el error
cuadrtico, la suma de los cuadrados de la diferencia entre el valor t observado y el valor
de t estimado por nuestra funcin y(x,w). Es decir, queremos minimizar la siguiente funcin:

Esta forma de calcular el error tiene buenas propiedades: cuanto ms distancia hay entre el
modelo y los datos, mayor es el error. Y el error slo es cero si nuestra curva pasa exactamente
por los puntos rojos.

Minimizar la funcin de error anterior es simple, dado que es una funcin cuadrtica de los
parmetros w, de manera que las derivadas respecto a los parmetros son funciones lineales.
Por lo tanto, podemos encontrar una solucin nica, un conjunto de parmetros que
llamaremos w*.

Control de Complejidad del modelo


Sin embargo, queda una cuestin pendiente: qu orden M escogemos para el polinomio
empleado en el modelo? sta es una cuestin clave, que se conoce como seleccin del
modelo (model selection). Cuanto mayor sea M, ms parmetros podemos ajustar y ms
flexible es nuestro modelo. Un modelo ms flexible se puede ajustar ms a los datos.
Un modelo con M=0 es simplemente una constante, y=w0.
Un modelo con M=1, es una recta, y=w0+w1x.

5
Con M=2 tenemos una parbola, etc.

Veamos el resultado de ajustar el modelo usando M= 0, 1, 3 y 9.

Mirando los resultados, vemos que los modelos con M=0 y M=1 se ajustan muy mal a los datos
que queremos reproducir: son demasiado rgidos. El modelo con M=3 reproduce bastante bien
los datos (aunque la curva no pasa exactamente por los puntos rojos). Curiosamente, tiene una
forma muy similar a la funcin sin(2x). Parece que un modelo con este nivel de complejidad
captura la esencia de los datos que queremos describir.
Si seguimos aadiendo complejidad al modelo y usamos M=9 (10 parmetros), se produce la
paradoja: el modelo se ajusta perfectamente a los datos (la curva pasa por los puntos rojos) y
por lo tanto no tiene error. Sin embargo, a simple vista se observa que la curva no sigue el
patrn de la funcin subyacente sinusoidal, es una curva errtica que va siguiendo los puntos
rojos.

6
Nos encontramos con un caso de over-fitting o sobreajuste. Hemos ajustado el modelo al
ruido de los datos, en lugar de ajustarlo a la natualeza del fenmeno que queremos modelizar.

Sobre ajuste y anlisis de complejidad

En el ejemplo que hemos mostrado vemos que un modelo ms simple y por lo tanto menos
flexible es capaz de reproducir mejor la esencia de lo que queremos representar. Usar
modelos demasiado complejos puede hacer que demos demasiada importancia al ruido en
lugar de a la seal.

Decidir el grado de complejidad de un modelo requiere mucha experiencia. Os recomiendo la


lectura del libro en el que se inspira este ejemplo, pero es posible dar facilitar algunas ideas al
respecto.

La primera es que debe existir un equilibrio entre la cantidad de datos que tenemos y la
complejidad del modelo. En nuestro ejemplo, cuando usamos un modelo con 10 parmetros
para describir un problema para el que tenemos 10 datos, el resultado es previsible: vamos a
construir un modelo a medida de los datos que tenemos, estamos resolviendo un sistema de
ecuaciones con tantas incgnitas como ecuaciones. Dicho de otra manera: si este modelo con
10 parmetros lo hubisemos ajustado con un total de 100 datos en lugar de 10, seguramente
funcionara mejor que un modelo ms bsico.

La segunda idea bsica: otra forma de detectar que nuestro modelo padece over-fitting es
observar el valor de los parmetros. Cuando se produce over-fitting, los parmetros de nuestro
modelo crecen de forma desmesurada, haciendo oscilar nuestra curva abruptamente. De
hecho, una manera de evitar el over-fitting sin necesidad determinar manualmente la
complejidad del modelo es aadir a la funcin de error que queremos minimizar la suma de los
cuadrados de los parmetros. De esta forma penalizamos los modelos ms complejos,
promoviendo que los parmetros sean ms suaves.

7
La prueba definitiva: la generalizacin

Finalmente, la mejor manera de evaluar si un modelo funciona es probarlo con nuevos datos!
A fin de cuentas, si creamos un modelo es para poder predecir resultados.

Para probar un modelo lo que se suele hacer es obtener un conjunto de datos diferente al
que se ha empleado para entrenar el modelo (a veces se dividen los datos disponibles en dos
grupos, unos para ser usados en la fase de entrenamiento del modelo y otros para la fase de
test). Si el modelo funciona, deberamos obtener buenas estimaciones de la variable objetivo a
partir de los nuevos datos.
Veamos qu sucede en el ejemplo anterior si obtenemos 10 nuevos datos y comparamos los
valores de t con las predicciones del modelo que hemos creado. Si hacemos esta comparacin
para cada posible complejidad del modelo (nmero parmetros del modelo), obtenemos el
resultado siguiente.

El grfico muestra como en fase de entrenamiento, cuantos ms parmetros usamos en el


modelo, menor error cometemos, hasta llegar a M=9 (10 parmetros), momento en el que el
error es nulo: el modelo se ajusta totalmente a los datos.

8
Al validar el modelo frente a nuevos datos de test, vemos que el error es algo mayor en general
pero que evoluciona de igual manera: mayor nmero de parmetros, menor error. Sin embargo,
observamos dos cosas importantes: (1) a partir de M=3, la mejora del error es muy pequea, lo
que indica que el modelo es suficientemente bueno. Y (2) cuando llegamos a M=9, el error se
dispara: tenemos un modelo sobre-ajustado a los datos de entrenamiento y al emplearlo en un
conjunto nuevo de datos, falla estrepitosamente.

Cuando este problema sucede decimos el modelo no est generalizando bien. Como no ha
capturado la informacin esencial del problema estudiado, no es capaz de dar buenas
predicciones cuando le damos nuevos datos generales.

Conclusiones

Con el crecimiento imparable de las capacidades de computacin y la mejora de los softwares


de anlisis es tentador crear modelos muy sofisticados.

Mayor sofisticacin no siempre implica mayor precisin: debemos seleccionar bien qu


variables usamos en nuestro modelo y ajustar bien la complejidad del mismo a la cantidad de
datos que tenemos. Slo as haremos predicciones de la seal, y no del ruido.

Bibliografa

Silver Nate (2014), la seal y el ruido, Editorial Pennsula.

Bishop, Christopher (2015), reconocimiento de patrones, editorial Springer.

Вам также может понравиться