Random Forest es un ensemble de árboles de decisión en el que cada árbol se entrena sobre una muestra bootstrap del conjunto de datos y utiliza un subconjunto aleatorio de características en cada nodo de división. Las predicciones finales se obtienen por votación mayoritaria entre todos los árboles, lo que reduce la varianza y mejora la generalización respecto a un único árbol. En este módulo, Random Forest actúa como el primer clasificador de referencia sobre el dataset Palmer Penguins, encapsulado dentro de un Pipeline de scikit-learn que integra preprocesamiento y modelo en un único objeto ajustable.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.
Función train_random_forest
La función train_random_forest construye y ajusta un Pipeline que combina el preprocesador de columnas con un RandomForestClassifier de 200 árboles:
| 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 ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g', 'bill_ratio', 'island', 'sex']. |
y_train | pd.Series | Variable objetivo con las etiquetas de especie: 'Adelie', 'Chinstrap' o 'Gentoo'. |
sklearn.pipeline.Pipeline ajustado con dos pasos: 'preprocessor' y 'model'.
Hiperparámetros usados en el entrenamiento:
n_estimators=200: se construyen 200 árboles de decisión independientes.random_state=42: semilla fija para garantizar reproducibilidad de los resultados.
El paso
'preprocessor' del pipeline se ajusta automáticamente cuando se llama a pipeline.fit(X_train, y_train). Nunca llames a preprocessor.fit() por separado antes de insertar el objeto en el pipeline — hacerlo causaría una doble transformación o fugas de información entre conjuntos.Uso y evaluación
Una vez construido el pipeline, puedes generar predicciones y evaluar el modelo con accuracy, reporte de clasificación y matriz de confusión:cmap="viridis" muestra de forma visual cuántas observaciones de cada especie se clasificaron correctamente y en qué clase se equivocó el modelo. Una diagonal perfectamente llena indica 0 errores.
Hiperparámetros clave
| Parámetro | Valor usado | Descripción |
|---|---|---|
n_estimators | 200 | Número de árboles en el ensemble. Más árboles reducen la varianza, pero incrementan el tiempo de entrenamiento. |
random_state | 42 | Semilla del generador de números aleatorios. Garantiza que el mismo código produzca los mismos resultados. |
max_features | 'sqrt' (por defecto) | Número de características evaluadas en cada división. Con 'sqrt', cada nodo evalúa √n características, decorrelacionando los árboles. |
max_depth | None (por defecto) | Profundidad máxima de cada árbol. None permite que los árboles crezcan hasta hojas puras, lo que puede causar sobreajuste en datasets grandes. |
Interpretación
En el dataset Palmer Penguins, Random Forest frecuentemente alcanza una accuracy cercana o igual al 100 %. Esto se debe al pequeño tamaño del dataset (344 observaciones) y a las fronteras de clase bien separadas entre las tres especies. Para confirmar que el resultado es robusto y no un artefacto del split particular, utiliza validación cruzada:cross_val_score divide automáticamente los datos en 5 particiones, ajusta el pipeline completo (incluyendo el preprocesador) en cada una y evalúa en el fold de validación restante. La media de los 5 scores es una estimación mucho más fiable que la accuracy sobre un único conjunto de test.