Sobre MíQué hagoProyectosLabContacto
CursoLección 1/516 min

De los datos al primer modelo

Antes de entrenar nada hace falta entender qué es exactamente lo que se entrena: qué entra, qué sale, y por qué un modelo que acierta siempre en los datos que ya vio puede fallar estrepitosamente con datos nuevos.

Un modelo de machine learning es, en el fondo, una función: recibe unos números de entrada y devuelve otros números de salida. Nada de comprensión, nada de magia — una función, como las que programaste en tu primera clase, solo que con muchísimos parámetros y una forma de ajustarlos que veremos en la próxima lección. Predecir el precio de una casa a partir de sus metros cuadrados, su antigüedad y su barrio es exactamente ese tipo de función: entra un vector de tres números, sale uno.

A cada número de entrada se le llama feature (característica), y al número que queremos predecir, label (etiqueta). En el ejemplo de la casa, metros cuadrados, antigüedad y barrio son features; el precio es la label. Convertir un problema del mundo real en esta tabla — filas de ejemplos, columnas de features, una columna final de label — es casi siempre el primer trabajo real de cualquier proyecto de machine learning, y suele llevar más tiempo que entrenar el modelo en sí.

Entrenar es buscar los parámetros que minimizan el error sobre los ejemplos que el modelo ve. Cuantos más parámetros tiene un modelo, más formas complicadas de frontera o de curva puede dibujar — a esto se le llama su capacidad. Con pocos parámetros, un modelo solo consigue aproximaciones toscas; con muchos, puede llegar a memorizar cada punto exacto que le enseñaste, ruido incluido. Eso segundo suena bien hasta que le enseñas un punto nuevo: como memorizó en vez de generalizar, falla.

Eso tiene nombre: sobreajuste (overfitting). Imagina que ajustas un polinomio a una nube de puntos con algo de ruido: con grado 1 obtienes una recta que ni se acerca; con grado 15, una curva que serpentea para tocar cada punto exacto, incluido el ruido, y que se dispara como loca fuera de esos puntos. En la demo de sobreajuste del laboratorio puedes subir el grado tú mismo y ver dos curvas separarse: el error sobre los datos de entrenamiento baja sin parar, y el error sobre datos que el modelo no vio dibuja una U — baja, toca fondo, y vuelve a subir. Encontrar el fondo de esa U es, honestamente, buena parte del oficio.

Por eso ningún modelo serio se evalúa con los datos que entrenó. Se separa una porción — la validación — que el modelo nunca ve durante el ajuste, y se usa solo para comprobar si generaliza y para elegir su capacidad (el grado del polinomio, la profundidad de un árbol, el tamaño de una red). Un tercer conjunto, el de test, se guarda aparte y se toca una sola vez, al final, porque incluso elegir hiperparámetros mirando la validación muchas veces acaba filtrando información suya al modelo. De esto — de la evaluación que no se puede fiar — hablaremos más en serio en la última lección.

El mismo problema se puede resolver con familias de modelo muy distintas. Un árbol de decisión traza fronteras a hachazos: en cada nodo hace una pregunta binaria sobre una feature ("¿metros cuadrados > 80?") y trocea el espacio en rectángulos, cada vez más pequeños. Una red neuronal, en cambio, combina muchas neuronas simples para doblar una frontera de forma continua y suave. En la demo del árbol de decisión puedes pintar dos clases de puntos y ver esos cortes rectangulares aparecer uno a uno; dale mucha profundidad con pocos puntos y verás memorizar en vez de aprender — el mismo sobreajuste de antes, con otra cara.

En la demo de la red neuronal el mismo problema se resuelve con una red minúscula entrenándose de verdad delante de ti: dibuja tus propios puntos, prueba el preset de espiral para ponérselo difícil, y mira la frontera curvarse hasta separar las clases. Hay un control ahí — el learning rate — que puedes subir hasta que la red se vuelva loca y deje de converger. Por qué pasa eso exactamente, y qué significa ese número, es la primera pregunta de la lección siguiente.

Práctica

Antes del cuestionario, toca estas demos del laboratorio:

Comprueba lo que has aprendido

1. Un modelo acierta el 99% de las veces en los datos con los que se entrenó, pero solo el 60% en datos nuevos. ¿Qué está pasando?

2. ¿Para qué sirve el conjunto de validación?

3. En la tabla de datos de una casa (metros cuadrados, antigüedad, barrio, precio), ¿cuál es la label?

hola@jmwebsoluciones.com