David Martínez Jiménez
No había escuchado de los métodos de ensamble hasta hoy. toy chiquito en ML :(
Diego Cesar Lerma Torres
¿Qué es el método de ensamble y por qué está de moda?
El método de ensamble se ha convertido en una tendencia en el ámbito de la inteligencia artificial y el machine learning, principalmente porque facilita obtener resultados de calidad al combinar múltiples modelos o algoritmos. Esta técnica busca un consenso entre varios estimadores para ofrecer una respuesta única y óptima, lo que la convierte en una herramienta poderosa y altamente efectiva. Además, su popularidad ha crecido tras su éxito en competencias de plataformas como Kaggle.
¿Cómo funciona el método de ensamble?
El principio detrás del método de ensamble es la diversidad. Al probar diferentes modelos con distintos parámetros, se explora un mayor espacio de soluciones, lo que generalmente resulta en respuestas más precisas. Existen dos estrategias principales dentro de este enfoque:
Bagging (Bootstrap Aggregating): Aquí, se crean particiones uniformes del conjunto de datos, permitiendo la repetición de muestras. Se entrena un modelo en cada partición por separado y al final se llega a una respuesta consensuada, por ejemplo, mediante votación mayoritaria. Este método es efectivo porque toma en cuenta la opinión de "varios expertos", aumentando la robustez del modelo.
# Ejemplo de implementación de Random Forest (un método de bagging) from sklearn.ensemble import RandomForestClassifier # Crear el modelo modelo = RandomForestClassifier(n_estimators=100, random_state=42) # Entrenar el modelo modelo.fit(X_train, y_train) # Predecir predicciones = modelo.predict(X_test)
Modelos reconocidos que utilizan bagging incluyen Random Forest, que combina varios árboles de decisión para mejorar sus predicciones.
Boosting: Se centra en mejorar el rendimiento mediante el aprendizaje secuencial donde cada modelo intenta corregir los errores del anterior. Esto se traduce en modelos más fuertes y precisos al pasar clasificadores menos complejos por esta secuencia, llegando a un resultado más poderoso.
Boosting mejora un modelo débil a través de repeticiones secuenciales, utilizando algoritmos como AdaBoost y Gradient Boosting. Estos modelos corrigen errores de iteraciones previas para ofrecer una predicción más precisa.
¿Cuáles son algunos ejemplos prácticos de métodos de ensamble?
Random Forest: Un clásico ejemplo de bagging que emplea múltiples árboles de decisión para aumentar la precisión y evitar el sobreajuste.
AdaBoost y Gradient Boosting: Ejemplos de boosting que optimizan la precisión del modelo al enfocarse en corregir errores de iteraciones previas.
XGBoost: Una implementación avanzada de boosting que ofrece grandes mejoras en eficiencia y desempeño, ampliamente utilizada en competiciones y aplicaciones industriales.
¿Cómo implementar estos métodos en tus proyectos?
Los métodos de ensamble son herramientas poderosas que deberías considerar al combatir problemas complejos con machine learning. Por ejemplo, la librería Scikit-learn proporciona implementaciones de diversos métodos de ensamble como Random Forest y AdaBoost. Para XGBoost, se puede integrar fácilmente mediante una librería externa:
# Instalación de la librería XGBoost pip install xgboost
Cada uno de estos métodos se puede personalizar mediante parámetros específicos dependiendo de los requerimientos del dataset y el problema en cuestión.
¿Tienes experiencia con métodos de ensamble?
Queremos conocer tus experiencias. ¿Has utilizado métodos de ensamble en tus proyectos? ¿Cómo lograste consenso entre múltiples estimadores? Comparte tus experiencias y aprendizaje, ya que aprender unos de otros es fundamental para el crecimiento continuo en el emocionante campo del machine learning.
Continúa explorando, aprendiendo y experimentando. A medida que perfecciones tus habilidades con los métodos de ensamble, te abrirás a nuevas oportunidades y soluciones más efectivas.
David Martínez Jiménez
No había escuchado de los métodos de ensamble hasta hoy. toy chiquito en ML :(
Diego Cesar Lerma Torres
Gonzalo Giampaolo
Va un comentario a modo de crítica para Platzi, y no para el curso. Siempre tienen a exagerar TODO. ↕️ Haces dos líneas de código y ya te dicen “Experto en programación” ↕️ En este caso, es un curso “profesional” de SKLearn y no te explican cómo funciona un algoritmo, ni cómo aprender a optimizarlos. ↕️ Hacer fit y predict no tiene nada de “profesional”. Siendo que Platzi nació como una plataforma para aprender tecnología, es donde menos se destaca.
Sergio Mora
nunca serás experto ni profesional mirando tutoriales, ni en platzi ni en ninguna plataforma..
ese nivel se alcanza realizando proyectos por tu cuenta, que apliques estos métodos de machine learning en situaciones de la vida real.
estoy de acuerdo con exagerar por que te da la seguridad de intentarlo, y no quedarse en el limbo de los tutoriales Pero aun así considero la crítica bien recibida y te pregunto, ¿tú ya eres un experto en programación? qué estás esperando para convertirte en uno? :muscle:
Matías Collado
Totalmente de acuerdo.
Arturo Baduna
un proceso de ML tiene 3 partes
limpiar el data sets
entrenar a modelos y ver cuales son los mejores
Ensamblar los mejores modelos
Elias Dudamel
Recordar que el proceso previo a esto a que hacer un análisis exploratorio de datos para saber como cuales son nuestros datos, sin hay nulos, si están balanceados los datasets.
Además de que debemos usar métodos como cross-validation para sestear mucho más nuestro modelos y así como tratar de entender mucho mejor indicadores de performance para los modelos.
Muchas veces no es necesario los métodos de ensamble pero son una gran herramienta a tener en cuenta.
Julián Cárdenas
Así es hay que hacer un buen análisis exploratorio y luego sí los demás pasos
David Vallejo Gomez
Según he visto en este y otros cursos Random Forest y Gradient Tree Boosting son los mejores métodos para solucionar muchos tipos de problema de ML, pero cuáles son las desventajas de estos métodos además de probablemente tener un mayor costo de procesamiento.
Andrés Felipe Rubiano Moreno
Como dice el coste de procesamiento puede ser brutal, dependiendo de como usted haya definido el modelo y de la cantidad de datos que necesite entrenar, scikit learn no es una herramienta especializada para casos tan extremos pero es algo a tener en cuenta otro problema es precisamente definir el modelo existen tantas posibles combinaciones que no se pueden probar todas pero si varias por lo cual el tiempo y de nuevo el procesamiento se vuelven contraproducentes y por último relacionado a lo anterior es que si no tiene mucho cuidado con su modelo puede caer muy fácilmente en el overfitting ya que se adapta muy bien a la topología de los datos que le proporcionemos.
Manuel Schaller
Este post me ayudó mucho a entender el funcionamiento de los métodos de ensamble, espero les sirva: https://www.pluralsight.com/guides/ensemble-methods:-bagging-versus-boosting
Jhon Freddy Tavera Blandon
Los métodos de ensamble, también conocidos como técnicas de ensamble o ensemble groups en inglés, son un enfoque poderoso en el aprendizaje automático que combina múltiples modelos más simples para crear un modelo más fuerte y preciso. Estos métodos aprovechan las ventajas de diferentes algoritmos de aprendizaje para mejorar la precisión y el rendimiento general del modelo.
AdaBoost (Adaptive Boosting):
Impulso del árbol de gradiente:
XGBoost (Extreme Gradient Boosting):
Tomas Dale
Incluiria otra estrategia, aunque no seria la mejor opcion, tomar varios modelos y quedarme con el que tiene mayor exactitud en prediccion, seria una alternativa simple cuando entre varios modelos la exactitud es muy alta y aceptable, y ya no evaluaria los ensambles, es decir, si estoy a gusto con exactitud arriba del 98% por ejemplo, pero dependeria de la relevancia, si estoy evauando la eficacia de un fertilizante o si es la seguridad que el auto evite los accidentes, en este ultimo no seria aceptable un 98% de exactitud.
Carolina Alvarez Murillo
De los métodos de ensamble solo he llegado a utilizar random forest, para clasificar neumáticos defectuosos y de buena calidad. Extraje features de un conjunto de imagenes de llantas defectuosas y buenas, esto usando la librería de python opencv y luego probe varios modelos de aprendizaje supervisado, pero este me arrojo los mejores resultados.
Joaquin Romero Flores
Qué son los métodos de ensamble?
No hay un ganador absoluto; depende de los datos, la simulación y las circunstancias. El “embolsado” Bootstrap agregattion(Bagging) y el “aumento” impulsar/propulsar (Boosting) reducen la varianza de su estimación única, ya que combinan varias estimaciones de diferentes modelos. Así que el resultado puede ser un modelo con mayor estabilidad.
Si el problema es que el modelo único obtiene un rendimiento muy bajo, Rara vez el embolsado obtendrá un mejor sesgo. Sin embargo, Boosting podría generar un modelo combinado con menos errores ya que optimiza las ventajas y reduce las dificultades del modelo único.
Por el contrario, si la dificultad del modelo único es el ajuste excesivo, entonces el Bagging es la mejor opción. El refuerzo por su parte no ayuda a evitar el sobreajuste; de hecho, esta técnica se enfrenta a este problema en sí. Por esta razón, el Embolsado es efectivo con más frecuencia que el Impulso.
Similitudes y Diferencias
Ambos son métodos conjuntos para obtener N alumnos de 1 alumno... pero, si bien se construyen de forma independiente para Bagging, Boosting intenta agregar nuevos modelos que funcionan bien donde fallan los modelos anteriores.
Ambos generan varios conjuntos de datos de entrenamiento por muestreo aleatorio... pero solo Boosting determina los pesos de los datos para inclinar la balanza a favor de los casos más difíciles.
Ambos toman la decisión final promediando los N alumnos (o tomando la mayoría de ellos) pero es un promedio igualmente ponderado para Bagging y un promedio ponderado para Boosting, más peso para aquellos con un mejor rendimiento en los datos de entrenamiento.
Ambos son buenos para reducir la varianza y proporcionan una mayor estabilidad... pero solo Boosting intenta reducir el sesgo. Por otro lado, el embolsado puede resolver el problema de sobreajuste.
Bagging: Qué tal si en lugar de depender de la opinión de un solo "experto" consultamos la opinión de varios expertos en paralelo e intentamos lograr un consenso?
Modelos Ensamblados basados en Bagging:
• Random Forest. • Voting Classifiers/Regressors. • En general se puede aplicar sobre cualquier familia de modelos de Machine Learning.
Boosting:
• Es un método secuencial. • Busca fortalecer gradualmente un modelo de aprendizaje usando siempre el error residual de las etapas anteriores. • El resultado final también se consigue por consenso entre todos los modelos.
María José Medina
La única experiencia que he tenido con modelos de ensamble fue la que adquirí en el Curso de ML aplicado con Python. Me gusto bastante.
Mario Alexander Vargas Celis
Los métodos de ensamble son técnicas poderosas en machine learning que combinan múltiples modelos débiles para obtener un modelo más robusto y preciso. Los dos métodos más populares son Bagging y Boosting.
🎯 ¿Qué es un modelo de ensamble?
Es un enfoque donde se entrenan varios modelos independientes y luego se combinan sus predicciones. Esto ayuda a:
🧰 1. Bagging (Bootstrap Aggregating)
🔍 ¿Cómo funciona?
📦 Ejemplo típico: RandomForestClassifier
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100) model.fit(X_train, y_train)
✅ Ventajas:
⚠️ Desventaja:
⚡ 2. Boosting
🔍 ¿Cómo funciona?
📦 Ejemplos populares:
AdaBoostGradientBoostingXGBoost, LightGBM, CatBoost (versiones optimizadas)from sklearn.ensemble import GradientBoostingClassifier
model = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1) model.fit(X_train, y_train)
✅ Ventajas:
⚠️ Desventajas:
🧪 Comparativa Rápida
CaracterísticaBagging (Random Forest)Boosting (XGBoost, etc.)EntrenamientoParalelo (modelos en paralelo)Secuencial (modelos en cadena)Error reducidoVarianzaSesgo + VarianzaRobusto a outliers✅ Alta⚠️ MedioOverfittingMenorRiesgo medio si mal ajustadoTiempo de cómputoRápidoLento
🧠 ¿Cuándo usar cuál?
Caso¿Qué elegir?Dataset ruidoso o pequeñoBagging (Random Forest)Precisión es críticaBoosting (XGBoost, LightGBM)Tiempo de entrenamiento limitadoBaggingProblema complejo y no linealBoosting
Antonio Demarco Bonino
Con estas dos metáforas de Caperucita roja fue que entendí mejor los métodos de ensamble.
Metáfora de Caperucita Roja para Bagging:
Imagina que Caperucita Roja tiene que elegir el mejor camino para llegar a la casa de su abuelita, pero no confía en un solo mapa, ya que algunos pueden ser incorrectos o confusos. Entonces, ella toma varios mapas diferentes del bosque, cada uno hecho por un cartógrafo distinto (esto sería como tener varios modelos de aprendizaje). Caperucita sigue cada uno de los mapas por separado y, al final, toma una decisión basada en la mayoría de los caminos que le indican las mismas direcciones (esto es como promediar las predicciones en Bagging). Al combinar los consejos de muchos mapas, reduce la posibilidad de cometer un error grave y se asegura de que, aunque algunos mapas sean incorrectos o tengan información incompleta, la mayoría la guiará correctamente.
Metáfora de Caperucita Roja para Boosting:
En este caso, Caperucita Roja empieza su viaje con un mapa que, lamentablemente, tiene algunos errores. A medida que avanza, se da cuenta de los errores que está cometiendo y, en lugar de ignorarlos, ajusta su ruta corrigiendo esos errores. Entonces, actualiza el mapa para prestar más atención a las partes del bosque donde se perdió (esto es como dar más peso a los errores en cada iteración de Boosting). Luego, con la experiencia y los errores aprendidos del primer mapa, sigue otro mapa, pero este es mejor y más enfocado en las áreas problemáticas. Con cada nuevo mapa, aprende más y más hasta que tiene un plan perfecto que le permite llegar sin problemas a la casa de su abuelita. Así es como Boosting aprende de los errores anteriores y los corrige para mejorar el rendimiento del modelo.
Alejandro Zambrano Zabaleta
En mi experiencia, he usado un análisis exploratorio con la función GridSearchCV | Sklearn. Con esto se evalúan distintos modelos y la combinación de sus hiperparámetros a través de una validación cruzada K-Fold. Esto se hace para distintos proporciones de datos para Train y Test, obteniendo un resultado como el siguiente .
Sebastian Serna Jimenez
404 - page not found
Andres Espejo
Dejare esto po aca: https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
JOSE DANIEL HERNANDEZ BETANCUR
Bagging and Boosting are both ensemble methods in Machine Learning, but what’s the key behind them?
Joaquin Romero Flores
Thanks for sharing.
I was passing by and saw your article. I've decided to translated to those who may want to read it in Spanish as well, just adding few annotations or flags.
Have a good one
Patricia Carolina Perez Felibert
Primera vez que escucho sobre estas estrategias, que bueno esta este curso, tiene demasiadas novedades para mi!
Jony Caleb Hurtado Ramos
Estoy aprendiendo un montón.
Mario Emiliano Gordon Pico
No sabía acerca de los métodos de ensamble, para llegar a un consenso de método de ML lo hacía mediante el score y el error.