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.

Este módulo es una píldora extendida del bloque de Machine Learning del bootcamp, diseñada para estudiantes que ya conocen los fundamentos de Python y quieren dar el salto a pipelines de ML reales y listos para producción. A lo largo del módulo construirás un pipeline completo de extremo a extremo: desde la carga de datos hasta la comparación cuantitativa de dos algoritmos ensemble (Random Forest y XGBoost), pasando por detección y tratamiento de outliers, feature engineering, codificación de variables y preprocesamiento con ColumnTransformer. Todo el código se ejecuta de forma interactiva en una app Streamlit que puedes explorar en tu navegador sin instalar nada.

¿Qué cubre este módulo?

Preprocesamiento de Datos

Aprende a detectar y tratar outliers con el método IQR (capping/winsorizing), crear features derivadas (bill_ratio), codificar variables categóricas con OneHotEncoder e imputar valores nulos con SimpleImputer, todo integrado en un ColumnTransformer.

Algoritmos Ensemble

Compara Bagging vs. Boosting en la práctica: entrena un RandomForestClassifier y un XGBClassifier sobre el mismo pipeline, evalúa su accuracy y entiende cuándo elegir uno u otro en un contexto real.

Demo Interactiva

Explora cada paso del pipeline pulsando botones en la app Streamlit desplegada en la nube. Cada sección muestra el código real, lo ejecuta en vivo y persiste los resultados para que puedas seguir avanzando sin recargar.

Reto de Aplicación

Pon en práctica lo aprendido con el notebook de reto (reto_notebook_bloque3_tips_v2.ipynb). Los bloques marcados con # TODO te guían para implementar cada pieza por ti mismo, con solución de referencia incluida.

Dataset: Palmer Penguins

El dataset Palmer Penguins contiene 344 observaciones de pingüinos recopiladas por la Dra. Kristen Gorman en la Estación Palmer de la Antártida. Es el conjunto de datos de referencia de este módulo porque combina variables numéricas continuas y variables categóricas nominales, tiene valores nulos reales y presenta fronteras de decisión suficientemente interesantes para comparar algoritmos.
AtributoDescripción
speciesVariable objetivo: Adelie, Chinstrap o Gentoo
islandIsla de procedencia: Biscoe, Dream o Torgersen
bill_length_mmLongitud del pico en milímetros
bill_depth_mmProfundidad del pico en milímetros
flipper_length_mmLongitud de la aleta en milímetros
body_mass_gMasa corporal en gramos
sexSexo del individuo: Male o Female
El dataset se carga directamente desde seaborn con sns.load_dataset('penguins'), por lo que no necesitas descargar ningún archivo CSV por separado (siempre que tengas conexión a internet).

Estructura del proyecto

El repositorio está organizado para separar la lógica del pipeline de la interfaz visual, lo que facilita reutilizar cualquier función fuera de la app Streamlit (por ejemplo, en los notebooks del reto):
pildora-bootcamp-preprocesamiento/
├── app/
│   ├── components/       # Componentes Streamlit (buttons, code_viewer)
│   ├── logic/            # Lógica del pipeline (load_data, outliers, feature_engineering, preprocessing, models)
│   ├── assets/           # CSS y banners
│   └── streamlit_app.py  # App principal
├── notebooks/            # Live coding demo y reto de aplicación
├── requirements.txt
└── README.md
Cada módulo dentro de app/logic/ es autocontenido e importable de forma independiente:
MóduloFunciones principales
load_data.pyload_penguins()
outliers.pycap_outliers(df, col)
feature_engineering.pyadd_bill_ratio(df)
preprocessing.pyencoding(df), split_train_test(X, y), build_preprocessor(num_cols, cat_cols)
models.pytrain_random_forest(preprocessor, X_train, y_train), train_xgboost(preprocessor, X_train, y_train)

Tecnologías utilizadas

Todas las dependencias están declaradas en requirements.txt. La tabla siguiente muestra la versión mínima recomendada y el papel de cada librería en el proyecto:
LibreríaVersión mínimaUso en el proyecto
streamlit1.32Interfaz interactiva de la demo: navegación, botones, gráficas y persistencia de estado
pandas2.0Manipulación del DataFrame, selección de columnas y construcción de tablas de métricas
numpy1.26Operaciones numéricas internas de scikit-learn y XGBoost
scikit-learn1.4Pipeline, ColumnTransformer, SimpleImputer, OneHotEncoder, RandomForestClassifier, métricas
xgboost2.0XGBClassifier con eval_metric='mlogloss' para clasificación multiclase
matplotlib3.8Boxplots, gráficas de barras comparativas y ConfusionMatrixDisplay
seaborn0.13Carga del dataset (sns.load_dataset), scatterplots y boxplots exploratorios
Los notebooks de este módulo (live_coding_demo.ipynb y reto_notebook_bloque3_tips_v2.ipynb) se pueden abrir y ejecutar directamente en Google Colab sin necesidad de instalar nada, ya que pandas, numpy, scikit-learn, matplotlib y seaborn vienen preinstalados en el entorno de Colab. La única excepción es XGBoost, que debes instalar manualmente con:
!pip install xgboost -q
Sigue las secciones de esta documentación en orden: cada paso construye sobre el anterior. El encoding asume que los outliers ya han sido tratados y que bill_ratio ha sido creado; el entrenamiento de modelos asume que el split y el preprocesador ya existen. Saltar secciones es la causa más habitual de errores como KeyError o NameError.

Build docs developers (and LLMs) love