XGBoost (eXtreme Gradient Boosting) construye árboles de forma secuencial: cada nuevo árbol se entrena para corregir los errores residuales del ensemble acumulado hasta ese momento. A diferencia del Bagging paralelo de Random Forest, este enfoque convierte gradualmente un predictor débil en uno muy preciso, iteración a iteración. En versiones modernas,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.
XGBClassifier acepta etiquetas de texto directamente para clasificación multi-clase, por lo que la función train_xgboost puede recibir las etiquetas originales de especie sin ninguna transformación previa.
Función train_xgboost
La función train_xgboost construye y ajusta un Pipeline que combina el preprocesador con un XGBClassifier configurado para clasificación multi-clase:
| Parámetro | Tipo | Descripción |
|---|---|---|
preprocessor | ColumnTransformer | Objeto construido por build_preprocessor(). Gestiona imputación y codificación de columnas numéricas y categóricas. |
X_train | pd.DataFrame | Conjunto de entrenamiento con las columnas de características del dataset. |
y_train | pd.Series | Variable objetivo con las etiquetas de especie originales: 'Adelie', 'Chinstrap' o 'Gentoo'. XGBClassifier acepta etiquetas de texto directamente en clasificación multi-clase. |
sklearn.pipeline.Pipeline ajustado con los pasos 'preprocessor' y 'model'.
eval_metric='mlogloss' especifica explícitamente la métrica interna de evaluación como multi-class log loss, suprimiendo el aviso de deprecación que XGBoost emite cuando la métrica se selecciona automáticamente para problemas multi-clase.Uso y evaluación
Con las etiquetas de texto originales, puedes entrenar el pipeline y evaluar directamente con nombres de especie legibles:train_xgboost trabaja con las etiquetas originales, xgb_pipeline.predict(X_test) devuelve directamente las cadenas de texto 'Adelie', 'Chinstrap' y 'Gentoo', lo que hace que el reporte de clasificación y la matriz de confusión sean inmediatamente legibles sin ningún paso adicional de decodificación.
Hiperparámetros clave
| Parámetro | Valor usado | Descripción |
|---|---|---|
n_estimators | 200 | Número de árboles en el ensemble secuencial. |
max_depth | 4 | Profundidad máxima de cada árbol. Limitar la profundidad previene el sobreajuste y reduce el coste computacional. |
learning_rate | 0.1 | Contribución de cada árbol a la predicción acumulada. Valores más bajos mejoran la generalización a costa de requerir más árboles. |
random_state | 42 | Semilla del generador de aleatoriedad para reproducibilidad. |
eval_metric | 'mlogloss' | Métrica interna de evaluación durante el entrenamiento: multi-class log loss. |
LabelEncoder en la aplicación Streamlit
La aplicación Streamlit (Sección 6) construye su propio pipeline inline — sin llamar atrain_xgboost — y sí utiliza un LabelEncoder antes de entrenar:
train_xgboost definida en models.py. Si usas train_xgboost directamente, no necesitas codificar las etiquetas — pasa y_train con los nombres de especie originales tal como los devuelve encoding().