Aprende Machine Learning de forma práctica: desde los fundamentos matemáticos hasta orquestar y desplegar modelos en producción con MLflow, Prefect, FastAPI y Docker.
- Nivel: Básico a intermedio
- Duración: 8 módulos
- Requisitos: Conocimientos básicos de Python y línea de comandos
- Herramientas: Python 3.13, uv, scikit-learn, XGBoost, MLflow, Prefect, FastAPI, Docker
uv es un gestor de paquetes y entornos virtuales ultrarrápido para Python. Con él podemos instalar versiones de Python, crear entornos virtuales e instalar dependencias, todo desde una sola herramienta.
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Cierra y abre tu terminal después de instalar para que el comando uv esté disponible.
git clone <url-del-repositorio>
cd machine-learning-zoomcampNo necesitas instalar Python por tu cuenta. uv puede descargar y gestionar versiones de Python directamente:
uv python install 3.13Puedes verificar que se instaló correctamente:
uv python listuv sync --python 3.13Esto hace tres cosas a la vez:
- Crea un entorno virtual (
.venv/) con Python 3.13 - Lee las dependencias del
pyproject.toml - Instala todos los paquetes necesarios
uv run python --version
# Debería mostrar: Python 3.13.xuv run jupyter notebookNota: Usamos
uv runpara ejecutar comandos dentro del entorno virtual sin necesidad de activarlo manualmente. Si prefieres activarlo:# macOS / Linux source .venv/bin/activate # Windows .venv\Scripts\activate
| Módulo | Carpeta | Descripción |
|---|---|---|
| 00 | Gestión de Entornos | uv, entornos virtuales, gestión de dependencias |
| 01 | Introducción al ML | Qué es ML, tipos de aprendizaje, CRISP-DM |
| 02 | Python para ML | NumPy, Pandas, análisis exploratorio, álgebra lineal |
| 03 | Regresión | Regresión lineal, RMSE, regularización, validación |
| 04 | Clasificación | Regresión logística, importancia de features, encoding |
| 05 | Evaluación de Modelos | Precision, recall, ROC-AUC, validación cruzada |
| 06 | Experiment Tracking | MLflow: tracking de experimentos, model registry |
| 07 | Orquestación | Prefect: pipelines, flows, tasks, scheduling |
| 08 | Despliegue | Serialización, FastAPI, Docker, batch deploy, AWS |
| — | Proyecto Integrador | Proyecto end-to-end: datos → modelo → API → Docker |
El módulo de despliegue incluye cuatro proyectos prácticos en modulo-08-despliegue/deploy/:
| Proyecto | Descripción |
|---|---|
intro-dockers/ |
App FastAPI con gatitos — introducción a Docker y HTTP |
web-service/ |
API REST de predicción de duración de viajes NYC Taxi |
batch-deploy/ |
Pipeline batch con Prefect: predicciones programadas cada hora |
web-service-aws/ |
Despliegue del servicio en AWS EC2 |
Cada módulo contiene:
- README.md — Objetivos y mapa del módulo
- Lecciones (.md) — Explicaciones teóricas con ejemplos de código
- notebook.ipynb — Práctica guiada en Jupyter
- ejercicios.md — Ejercicios para reforzar lo aprendido
El curso culmina con un proyecto donde aplicarás todo lo aprendido:
- Elegir un problema y dataset
- Análisis exploratorio y preparación de datos
- Entrenar y evaluar modelos (con MLflow)
- Orquestar el pipeline (con Prefect)
- Crear una API con FastAPI
- Contenerizar con Docker
| Herramienta | Uso |
|---|---|
| uv | Gestión de entorno y dependencias |
| NumPy / Pandas | Manipulación de datos |
| scikit-learn | Modelos de ML |
| XGBoost | Gradient boosting |
| Matplotlib / Seaborn / Plotly | Visualización |
| MLflow | Experiment tracking y model registry |
| Prefect | Orquestación de pipelines |
| Optuna | Optimización de hiperparámetros |
| FastAPI | API REST para servir modelos |
| Docker | Contenerización y despliegue |
| AWS EC2 | Despliegue en nube |