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.

Un poco más adelante vamos a ver los conceptos necesarios para entender lo bien o mal que están funcionando los modelos (estas son las «métricas de bondad» o métricas de evaluación de modelos), pues además habrá que entender bien las 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, 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 y varianza. Como vimos al principio del curso, 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.

Métricas de evaluación para regresión

Si ya se ha hablado sobre análisis de datos, como es nuestro caso (transformaciones, estrategias como cross-validation, etc.), recién hayamos visto cuestiones como la regresión lineal y la regresión logística, será buen momento para conocer el tema de las métricas para evaluar modelos, ya que van a volverse muy útiles.

Para evaluar un modelo de regresión hay que medir la magnitud de las desviaciones de sus predicciones respecto a los valores correctos. No basta con una única métrica, ya que cada una penaliza los errores de forma diferente:

  • Error Absoluto Medio (MAE): Proporciona la media de los errores absolutos. Es directamente interpretable en las mismas unidades que la variable objetivo, y resulta robusto frente a valores atípicos (los famosos outliers).
  • Error Cuadrático Medio (MSE) y su Raíz (RMSE): Elevan los errores al cuadrado antes de promediar. Esto penaliza severamente los errores grandes, lo cual es fundamental cuando un fallo grave en la predicción tiene un coste muy alto (ej. si estimar mal la cantidad de electricidad que producimos puede provocar un apagón en el país).
  • Coeficiente de Determinación (R2): Indica qué proporción de la varianza total de los datos es explicada por el modelo, es decir, hasta qué punto las variables de entrada determinan o explican la variable objetivo… o dicho de otro modo, cómo de «mejor» es nuestro modelo que un «modelo tonto» que siempre predijera la media. Va de 0 a 1 (o tiene valores negativos si nuestro modelo es peor que dicho «modelo tonto»).

Métricas de evaluación para clasificación

Para evaluar un modelo de clasificación, sólo evaluar la «precisión simple» (accuracy) suele ser engañoso, especialmente si las distintas clases (categorías o etiquetas) están muy desequilibradas (unas son muy grandes, otras muy pequeñas). Así que hay bastantes métricas para hacerlo bien.

  • Matriz de Confusión: Esta es la herramienta fundamental para descomponer los aciertos y fallos en Verdaderos Positivos (VP), Falsos Positivos (FP), Verdaderos Negativos (VN) y Falsos Negativos (FN).
  • Precisión y Sensibilidad (Recall): La precisión mide qué porcentaje de los casos etiquetados como positivos lo eran realmente, mientras que la sensibilidad mide qué porcentaje de los casos positivos reales o correctos logró capturar el modelo.
  • F1-Score y Curva ROC-AUC: El F1-Score busca el equilibrio (la media armónica) entre precisión y sensibilidad, mientras que la curva ROC y el área bajo la curva (AUC) evalúan la capacidad del clasificador para discriminar entre clases al variar el umbral de decisión probabilístico (porque normalmente los clasificadores no devuelven directamente una categoría, sino una probabilidad de pertenecer a una categoría… y el umbral típico que solemos usar para afirmar que pertenece es que esa probabilidad sea mayor o igual al 50%).

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

Tras haber visto árboles de decisión, se habla de los trees ensembles, como Random Forest y XGBoost (este último como veremos en la siguiente sección es bastante moderno y cuenta con su propia librería, ya que no está incluido por defecto en scikit-learn).

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.

  • …