¿Qué es overfitting y cómo evitarlo?


- Error de entrenamiento: según se incrementa la complejidad del modelo, el modelo tiende a hacer un overfitting sobre los datos del entrenamiento. El error sobre los datos de entrenamiento irá decreciendo cada vez más.
- Error de testeo: el error sobre el conjunto de validación es alto tanto en el escenario de underfitting como en el de overfitting. Nos interesa monitorizar este error para quedarnos justo en el punto de entrenamiento en el que este es menor.

- Condición de alto bias: nos encontramos con underfitting en nuestro modelo. Tanto el error de entrenamiento como el de testeo son elevados. Por más que añadamos datos para que el modelo explore, no se mejora el desempeño. Como solución se podría probar aumentar el número de características a analizar o la complejidad del algoritmo.
- Condición de alta varianza: nuestro modelo está afectado por overfitting. Ajusta muy bien datos de entrenamiento, pero no es capaz de inferir correctamente los datos de validación, por lo que error de testeo es significativamente mayor que error de entrenamiento. Añadir datos variados ayuda a resolver el problema, así como la reducción de la complejidad del modelo.
- Por un lado, debemos garantizar de que tenemos una cantidad suficiente de muestras tanto para entrenar el modelo como para validarlo.
- En el caso de movernos en tareas de clasificación, deberemos contar con clases variadas y equilibradas en cantidad: por ejemplo, en caso de aprendizaje supervisado y suponiendo que tenemos que clasificar diversas clases o categorías, es importante que los datos de entrenamiento estén balanceados y sean representativos de todas las clases, para evitar sesgos innecesarios. Sobre los problemas presentados en el aprendizaje desbalanceado ya hablamos en el nuestra anterior serie Machine Learning y astrofísica: clasificando estrellas, galaxias y quasars.
- Siempre debemos subdividir nuestro conjunto de datos y mantener una porción del mismo para testar el modelo. Esto nos permitirá evaluar el desempeño del algoritmo y también nos permitirá detectar fácilmente efectos del overfitting o underfitting.
- Debemos prevenir una cantidad excesiva de dimensiones, con muchas variantes distintas, sin suficientes muestras. A veces conviene eliminar o reducir la cantidad de características que utilizaremos para entrenar el modelo. Una herramienta útil para hacerlo es Principal Component Analysis (PCA) o T-distributed Stochastic Neighbor Embedding (t-SNE).