🎙️ Episodio 90. El comodín del público

Hoy hablamos sobre los métodos de ensemble en Machine Learning, cómo funcionan técnicas como bagging, boosting y stacking.

¿Recuerdas el famoso programa de televisión ¿Quién quiere ser millonario?, conocido antes como 50x15? Era ese programa donde el concursante tenía que responder 15 preguntas para ganar 50 millones de pesetas. Uno de los comodines más populares era el del público. Básicamente, el concursante pedía ayuda al público, que votaba cuál creía que era la respuesta correcta, y luego decidía si seguir el consejo o no.

Pues los métodos de ensemble funcionan de forma similar: en lugar de confiar en un solo modelo para hacer predicciones, dejamos que un grupo de modelos vote la respuesta y combinamos sus opiniones para tomar la mejor decisión posible.

¿Qué Son los Métodos de Ensemble en Machine Learning?

[Métodos de ensemble]: Un conjunto de modelos que combina sus predicciones para obtener un resultado más preciso que cualquier modelo por sí solo.

Esto es como si un grupo de modelos de Machine Learning se juntara para tomar decisiones...

¡igual que el comodín del público en ¿Quién quiere ser millonario?!

La idea de los métodos de ensembling es entrenar varios modelos de Machine Learning y luego combinar las predicciones de todos para tener una predicción final.

  • Si estuviéramos en un problema de clasificación, el método más clásico es poner a todos los modelos que hemos entrenado a votar y la clase que más veces salga es la que seleccionamos.
  • En el caso de que estemos prediciendo una cantidad (un problema de regresión) lo que se suele hacer es el promedio de todas las predicciones de nuestro conjunto de modelos y pista.

Sencillo y efectivo.

Si agregamos las predicciones de un grupo de modelos normalmente obtendremos mejores resultados que con cualquiera de esos modelos usados individualmente.

Las técnicas de ensemble mejoran la precisión de cualquiera de los modelos individuales que combinamos.

Por eso, si alguna vez dais una vuelta por una competición de Kaggle podréis ver que los equipos ganadores usan métodos de ensemble para ganar combinando distintos modelos para conseguir la máxima precisión en su solución.

Tipos de Métodos de Ensemble

Introduciendo diversidad a los modelos a través de los datos

Cuando hablamos de mejorar nuestros modelos de Machine Learning, una de las estrategias más efectivas es la de introducir diversidad.

En lugar de entrenar un único modelo con todos los datos disponibles, podemos crear varios modelos entrenándolos con diferentes subconjuntos de datos.

Esto permite que cada modelo aprenda distintos aspectos de la información y que, al combinar sus predicciones, podamos obtener resultados más precisos y robustos. Hay dos formas principales de lograr esta diversidad a través de los datos: pasting y bootstaping.

Pasting

Pasting es cuando dividimos el conjunto de datos de entrenamiento original en distintos subconjuntos, asegurándonos de que cada observación solo se utilice una vez.

Es como si estuviéramos repartiendo las observaciones en diferentes bolsitas para entrenar cada modelo por separado. Sin repeticiones, cada canica (u observación) va a una sola bolsa.

Después entrenaríamos cada modelo con uno de esos subconjuntos de datos y combinaríamos sus predicciones.

Bagging

El bagging (abreviatura de bootstrap aggregation) es una técnica que nos permite entrenar varios modelos utilizando diferentes subconjuntos de datos del conjunto de entrenamiento original.

Bootstraping, permite que las mismas observaciones se repitan en varios conjuntos de entrenamiento.

Es como si tuviéramos una bolsa grande de canicas y, cada vez que sacamos una para entrenar un modelo, volvemos a meterla en la bolsa. De esta forma, una misma observación podría utilizarse en varios modelos, lo que introduce más variabilidad entre ellos.

Cuando combinamos las predicciones de todos los modelos entrenados con estos subconjuntos de datos, obtenemos un modelo más robusto, capaz de hacer predicciones más precisas que cualquier modelo individual.

Esta técnica de combinar varios modelos entrenados a partir de subconjuntos de datos se conoce como bagging.

El ejemplo más popular de bagging es el Random Forest, donde entrenamos varios árboles de decisión utilizando diferentes subconjuntos de datos (usando bootstraping en este caso) y luego combinamos las predicciones de esos árboles. Esto ayuda a corregir la inestabilidad que pueden tener los árboles de decisión individuales, haciéndolos menos sensibles a pequeños cambios en los datos de entrenamiento.

Lo bueno del bagging es que genera modelos diversos que capturan distintos patrones en los datos, y esta diversidad es clave para mejorar el rendimiento final del conjunto.

Boosting: Mejorando Paso a Paso

El boosting es como una cadena de modelos donde cada uno trata de corregir los errores del anterior.

Entrenamos un modelo sencillo, observamos en qué falló y luego entrenamos otro modelo que intenta mejorar esos errores.

Repetimos este proceso varias veces y, al final, combinamos las predicciones de todos.

  • Aquí, cada modelo se construye de forma secuencial y se enfoca en aquellas observaciones donde el modelo anterior se equivocó.
  • Esto da como resultado un modelo final que es más preciso que cualquier modelo base por sí solo.

Ejemplos populares de boosting: AdaBoost, Gradient Boosting y, por supuesto, XGBoost, que es uno de los favoritos cuando trabajamos con datos estructurados, como los que están en tablas.

Stacking: La Torre de Modelos

Finalmente, tenemos el stacking.

La idea es simple: entrenamos varios modelos (llamados modelos base) y luego usamos un meta-modelo que combina las predicciones de esos modelos para tomar la decisión final.

  • Stacking es como construir una torre de modelos, donde cada uno aporta su perspectiva.
  • El meta-modelo aprende a combinar esas perspectivas para ofrecer la mejor predicción posible.

Lo interesante del stacking es que se pueden tener varios niveles de modelos.

Por ejemplo, las predicciones de los modelos base pueden alimentar a un segundo conjunto de modelos, y las salidas de estos pueden pasar a un meta-modelo final.

¿Cuál Es la Clave del Éxito en Ensemble Learning?

Para que los métodos de ensemble learning funcionen de manera efectiva, no vale sólo con combinar varios modelos y esperar lo mejor.

Hay ciertos factores que son clave para aprovechar al máximo esta técnica y obtener una predicción final más precisa.

Dos elementos esenciales son la diversidad entre los modelos y un rendimiento equilibrado entre ellos.

  1. Diversidad: Los modelos que combinamos deben ser lo más independientes posible entre sí. Si todos cometen los mismos errores, no hay mucho que ganar. Podemos lograr esta diversidad utilizando diferentes algoritmos, hiperparámetros o entrenando cada modelo con diferentes subconjuntos de datos.
  2. Similaridad en el Poder Predictivo: Aunque buscamos diversidad, los modelos base deben tener un rendimiento similar. Si uno es muy bueno y otro es "una patata", la combinación no funcionará bien.

¿Cuál Es el Problema con los Métodos de Ensemble?

¡Aquí viene el "pero"! Aunque los métodos de ensemble son una maravilla para mejorar el rendimiento final, tienen un pequeño problema en el mundo real: el mantenimiento.

Como estamos utilizando varios modelos en lugar de uno solo, esto significa más trabajo a la hora de desplegar y mantener el sistema.

Hay que re-entrenar y ajustar varios modelos, lo cual puede ser costoso y complejo.

Aumentar un 0.1% la precisión de un modelo puede ser crucial en una competición como las de Kaggle, pero en producción, ese pequeño aumento puede no justificar el esfuerzo extra.

TL;DR

Hoy hemos visto cómo los métodos de ensemble combinan la fuerza de varios modelos de Machine Learning para mejorar las predicciones.

Desde el bagging con sus Random Forests hasta el boosting con su enfoque secuencial y el stacking como la torre de modelos, cada técnica tiene su propia forma de aprovechar la diversidad.

Sin embargo, no olvides que en la práctica, la simplicidad y el coste de mantenimiento pueden ser factores muy importantes para elegir qué técnica aplicar.

Espero que te guste el episodio.

Si es así, no olvides dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Youtube o donde quiera que escuches el podcast. 

Recuerda que si tienes cualquier duda o pregunta puedes contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.

Muchas gracias por estar ahí y te espero en el próximo episodio de Un Podcast Ninja sobre Big Data.

Accede a todo el contenido premium

Ya no necesitas pagar cientos de euros por un Bootcamp para convertirte en ninja de los datos. Por solo 17€/mes (o menos 🤯), obtén acceso al podcast premium, a todos los tutoriales y a los resúmenes de los libros más top sobre Machine Learning y Ciencia de datos y aprende a tu ritmo.
¡Empieza ahora!
Copyright © 2024  · Datos 🥷 · Todos los derechos reservados