Categorías
Universitario Videojuego

Evaluación, optimización y ensamblados

Un buen científico de datos no se conforma con los modelos más básicos sino que trata de diagnosticar posibles fallos, exprimir el rendimiento de dichos modelos a tope y, si hace falta, combinar varios modelos para crear sistemas altamente precisos.

Diagnóstico de modelos

Una vez vistos temas de regresión lineal y demás… hay que saber bien cómo seleccionar, evaluar y optimizar modelos. Es una fase transversal crítica para garantizar que los modelos funcionen correctamente en entornos reales.

Recordar aquí los conceptos que quizá hemos visto antes de accuracy, precision, recall, F1, ROC-AUC… para entender bien lo bueno o malo de lo que están haciendo (estas son las métricas de bondad) y entenderlo bien en métricas de negocio (¡algo muy útil para videojugeos masivos como los de móvil!).

Para poder diagnosticar bien los modelos que creamos, además de conocer las métricas de bondad hay que entender bien el dilema sesgo-varianza, algo fundamental en el análisis de errores. Es decir, tenemos que ser capaces de explicar cómo el error total se descompone en sesgo (bias) y varianza. El sesgo es la parte del error debida a que el modelo hace asunciones demasiado simples, tiende al underfitting… mientras que la varianza es la parte del error debida a que el modelo es excesivamente sensible a las pequeñas fluctuaciones del conjunto de entrenamiento, tiende al overfitting. ¡Equilibrar todo esto es la clave para conseguir un buen ajuste!

Las curvas de aprendizaje son una representación gráfica del rendimiento (esto es, una forma de visualizar el error) tanto en la fase del entrenamiento como en la de validación, para ver cómo varía el rendimiento según aumenta el tamaño del conjunto de datos o la complejidad del modelo. Es una forma de identificar visualmente si al modelo le faltan datos o le sobra complejidad.

Ajuste de hiperparámetros

Mientras que los parámetros de un modelo son valores que aprende el modelo gracias a la optimización (los pesos w), los hiperparámetros los estima y los ajusta el desarrollador ANTES de empezar a entrenar el sistema. Son cosas como la profundidad máxima de un árbol de decisión, la k en un modelo k-NN, el parámetro de regularización C de los SVM, etc.

¿Y entonces, cómo hacemos ese ajuste de hiperparámetros (hyperparameter tuning)? Hay distintas estrategias para buscarlos:

  • Grid Search, búsqueda exhaustiva sobre una rejilla predefinida de combinaciones.
  • Random Search, muestreo aleatorio en el espacio de parámetros, que a menudo resulta mucho más eficiente que Grid Search.
  • Optimización Bayesiana, modelar la propia función de rendimiento para elegir de manera inteligente el siguiente conjunto de hiperparámetros a evaluar.

Métodos de ensamblado: Bagging y Random Forest

La primera línea de investigación que sigue esto se conoce como bagging. El principio básico del ensamblado (ensemble learning) consiste en que la combinación de múltiples modelos débiles puede producir un modelo fuerte con menor varianza. ¡Es creer en «el poder de la mayoría»! De alguna forma los métodos de ensamblado (ensemble methods) donde se combinan modelos avanzados es el broche de oro para ir cerrando en Aprendizaje Supervisado, que vemos antes de ver Redes Neuronales Artificiales y antes, por supuesto, de entrar en Aprendizaje No Supervisado. Ensamblar consiste en agregar múltiples modelos individuales para construir un predictor mucho más robusto y preciso.

La técnica o metodología de bootstrap aggregating (o bagging) consiste en entrenar el mismo tip ode algoritmo sobre diferentes subconjuntos de datos creados mediante muestreo con reemplazo (bootstrapping) y promediar sus predicciones.

Por otro lado la técnica o metodología de Random Forest es la evolución definitiva de los árboles de decisión. ¡Ya no entrenamos un árbol, entrenamos cientos! Aplica bagging a árboles de decisión, añadiendo aleatoriedad en la selección de características en cada división (split). Durante muchos años se convirtió en el estándar de la industria por su robustez ante el overfitting y su alta precisión sin requerir excesivo ajuste de parámetros.

Métodos de ensamblado: Boosting

La segunda línea de investigación que sigue esto se conoce como boosting. A diferencia del bagging (que es en paralelo), el boosting entrena modelos de forma secuencial, donde cada nuevo árbol se enfoca específicamente en corregir los errores cometidos por los anteriores.

El Gradient Boosting lo que hace es minimizar la función de pérdida utilizando el gradiente. Existen bibliotecas software superoptimizadas para hacer esto, llamadas XGBoost, LightGBM, CatBoost, etc. Son las reinas absolutas en las competiciones de datos (como las que se organizan en la plataforma Kaggle) y también son muy útiles para hacer analítica de datos estructurados/tabulares en videojuegos, como para detectar fraudes en compras o predecir el abandono (churn) de los jugadores.

Métodos de ensamblado: Apilamiento y Votación

Y fuera de las líneas de investigación de bagging y boosting, existen otros métodos de ensamblado que se centran en la heterogeneidad, combinando modelos de naturaleza radicalmente distinta (ej. un árbol, una regresión logística y un k-NN).

La combinación se realiza por voto mayoritario (hard voting) o promedio de probabilidades (soft voting).

El apilamiento (Stacking) o la generalización apilada (Stacked Generalization) ya es un poco «rizar el rizo»: consiste en entrenar un meta-modelo (o meta-clasificador) que toma como entradas las predicciones de los modelos de nivel inferior para dar su veredicto final.

Más información

Para complementar es recomendable consultar otros documentos.