Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/HelenDiMo/pildora-bootcamp-preprocesamiento/llms.txt

Use this file to discover all available pages before exploring further.

Los algoritmos ensemble combinan múltiples learners débiles para construir un predictor más robusto y generalizable. En lugar de confiar en un único modelo, el ensemble agrega las predicciones de muchos modelos entrenados de formas distintas, reduciendo así el error global. Este módulo cubre dos familias principales: Bagging, representado por Random Forest, y Boosting, representado por XGBoost. Entender sus diferencias te permitirá elegir el algoritmo adecuado según las características de cada problema.

¿Qué es un ensemble?

Imagina que consultas a cien expertos independientes en lugar de a uno solo: aunque cada uno pueda equivocarse de vez en cuando, la decisión colectiva suele ser mucho más acertada que la de cualquier individuo. Este principio se conoce como la sabiduría de las multitudes y es exactamente la intuición detrás de los métodos ensemble. Un árbol de decisión individual tiende a sobreajustarse: memoriza el conjunto de entrenamiento en lugar de aprender patrones generales. Al construir muchos árboles sobre subconjuntos distintos de los datos y combinar sus predicciones (por votación o promedio), el ensemble reduce la varianza del modelo y mejora su capacidad de generalización a datos nuevos. El resultado es un predictor más estable que la suma de sus partes.

Bagging vs. Boosting

Las dos familias de ensemble difieren fundamentalmente en cómo y en qué orden construyen sus árboles:
ConceptoBaggingBoosting
EstrategiaEntrenar múltiples árboles en paralelo sobre muestras bootstrap independientesEntrenar árboles secuencialmente, cada uno corrigiendo los errores del anterior
EntrenamientoParalelo — los árboles no se comunican entre sí durante el entrenamientoSecuencial — cada árbol depende del residuo del árbol previo
Dependencia entre árbolesIndependientes; la predicción final se obtiene por votación mayoritariaDependientes; el peso de cada árbol refleja su contribución a la corrección acumulada
Riesgo principalSubajuste si los árboles individuales son demasiado superficialesSobreajuste en datos ruidosos si se usan demasiados árboles o un learning_rate alto
Ejemplo canónicoRandom ForestXGBoost

Subespacio aleatorio

Random Forest no solo introduce aleatoriedad mediante el muestreo bootstrap de filas — también aplica el principio de subespacio aleatorio a las columnas. En cada nodo de cada árbol, en lugar de evaluar todas las variables disponibles para la mejor división, se selecciona aleatoriamente un subconjunto de max_features características (por defecto 'sqrt' del total). Esta doble fuente de aleatoriedad decorrelaciona los árboles entre sí: dos árboles construidos sobre el mismo conjunto de datos producirán estructuras distintas porque han visto subconjuntos distintos de variables. Cuando árboles menos correlacionados votan juntos, sus errores no se suman — se cancelan — lo que reduce drásticamente la varianza del ensemble.

Learning rate en Boosting

En XGBoost, el hiperparámetro learning_rate (también llamado shrinkage, por defecto 0.1) controla cuánto contribuye cada árbol nuevo a la predicción acumulada. Formalmente, cada árbol se multiplica por este factor antes de sumarse al ensemble: y^(t)=y^(t1)+ηft(x)\hat{y}^{(t)} = \hat{y}^{(t-1)} + \eta \cdot f_t(x) Un learning_rate más bajo significa que cada árbol individual tiene menos peso, lo que obliga al modelo a necesitar más árboles (n_estimators mayor) para alcanzar la misma capacidad expresiva. A cambio, el proceso de optimización avanza más despacio y con más cuidado, lo que mejora la generalización y reduce el riesgo de sobreajuste. En la práctica, suele preferirse un learning_rate entre 0.05 y 0.3 junto con un número elevado de estimadores, ajustando ambos mediante búsqueda de hiperparámetros.

Random Forest

Entrena un RandomForestClassifier dentro de un Pipeline de scikit-learn y evalúa con accuracy y matriz de confusión.

XGBoost

Entrena XGBClassifier para clasificación multi-clase con etiquetas de texto directas y eval_metric=‘mlogloss’.
En datasets pequeños y limpios como Palmer Penguins, ambos algoritmos tienden a alcanzar una accuracy similar — a menudo cercana al 100 %. La diferencia real entre Bagging y Boosting emerge en datos ruidosos, de alta dimensionalidad o a gran escala, donde la corrección secuencial de errores de Boosting marca la diferencia.

Build docs developers (and LLMs) love