IA para Científicos Sociales

Sesión 1.2: Fundamentos de Machine Learning

Danilo Freire

Departament of Data and Decision Sciences
Emory University

Fundamentos de Machine Learning

Agenda de la sesión

Primera parte

  • El flujo de trabajo de ML
  • Calidad de datos y preprocesamiento
  • Feature engineering
  • División train/test y validación cruzada

Segunda parte

  • Sobreajuste y sesgo-varianza
  • Regularización
  • Métricas de evaluación
  • Selección de modelos
  • Reproducibilidad en ML

Elegir la métrica correcta

Fuente: Medium

El flujo de trabajo de ML

El flujo de trabajo de ML

Del problema a la solución

Flujo de trabajo de ML


  • Paso 1: Recoger datos: obtener observaciones relevantes al problema
  • Paso 2: Preprocesar: limpiar valores faltantes, transformar variables, codificar categorías
  • Paso 3: Dividir: separar en entrenamiento y prueba
  • Paso 4: Entrenar: ajustar un modelo a los datos de entrenamiento
  • Paso 5: Evaluar: medir el rendimiento en datos que el modelo nunca vio
  • En la práctica, este proceso es iterativo: volvemos a pasos anteriores cuando algo falla

Pasos 1-2: recolección y preprocesamiento

Recolección de datos

  • Encuestas, registros administrativos, sensores, APIs, web scraping
  • La calidad de los datos determina la calidad del modelo
  • “Basura entra, basura sale” (garbage in, garbage out)

Preprocesamiento

Ejemplo: datos de países

Datos crudos:
  país     | pib    | edu  | internet
  Uruguay  | 17,020 | 4.9  | 87.7
  Bolivia  | NA     | 6.5  | 48.2
  Chile    | 15,346 | 5.4  | NA

Después de preprocesar:
  país     | pib    | edu  | internet
  Uruguay  | 17,020 | 4.9  | 87.7
  Bolivia  | 10,500 | 6.5  | 48.2   ← imputado
  Chile    | 15,346 | 5.4  | 72.3   ← imputado

El preprocesamiento es la mayor parte del trabajo en un proyecto real de ML.

Calidad de datos: el factor más ignorado

Problemas comunes en datos reales:

  • Valores faltantes: ¿aleatorios o sistemáticos?
    • MCAR: faltantes completamente al azar
    • MAR: faltantes que dependen de otras variables observadas
    • MNAR: faltantes que dependen de la variable misma (más difícil)
  • Errores de medición: datos mal cargados, unidades inconsistentes
  • Duplicados: registros repetidos que sesgan el modelo
  • Desbalance de clases: mucho más de una categoría que de otra
  • Data leakage: información del futuro que “se filtra” al entrenamiento

Ejemplo de data leakage:

Quieren predecir si un paciente será hospitalizado.

Variable: "días_en_hospital"

Si incluyen esta variable,
el modelo "aprende" que
días_en_hospital > 0 → hospitalizado

¡Pero esta información no existe
al momento de la predicción!


El data leakage es uno de los errores más difíciles de detectar y puede inflar artificialmente las métricas.

Feature engineering

El arte de crear variables predictivas

  • Feature engineering: crear nuevas variables a partir de las existentes
  • Puede mejorar mucho el rendimiento de un modelo simple
  • Ejemplos comunes:
    • Transformaciones: log(ingreso), raíz cuadrada, bins
    • Interacciones: edad × educación
    • Agregaciones: promedio de compras últimos 3 meses
    • Variables temporales: día de la semana, mes, año
    • Variables de texto: largo del texto, cantidad de palabras
  • El conocimiento del dominio es clave: ¿qué variables tienen sentido para el problema?

Ejemplo: predicción de abandono

Variables originales:

fecha_registro, ultima_compra,
monto_total, cantidad_compras

Variables derivadas:

dias_desde_registro
dias_sin_comprar         ← predictor fuerte
promedio_por_compra
frecuencia_compras
tendencia_reciente       ← ¿aumenta o baja?


Un buen feature engineering puede valer más que un modelo complejo.

Paso 3: ¿por qué dividir los datos?

  • Queremos saber si el modelo funciona con datos nuevos, no solo con los datos que ya vio
  • Si evaluamos el modelo con los mismos datos que usamos para entrenarlo, no sabemos si realmente aprendió
  • Por eso dividimos:
    • Entrenamiento (~70-80%): el modelo aprende de estos datos
    • Prueba (~20-30%): evaluamos el rendimiento con datos que el modelo nunca vio
  • Regla de oro: nunca mirar los datos de prueba hasta el final

División train/test

División train/test y validación cruzada

División train/test

  • La forma más simple de evaluar un modelo
  • Dividimos los datos aleatoriamente en dos conjuntos
  • El modelo solo ve los datos de entrenamiento durante el ajuste
  • Evaluamos con los datos de prueba al final
  • Problemas potenciales:
    • Con pocos datos, una sola división puede no ser representativa
    • El resultado depende de qué observaciones cayeron en cada conjunto
  • Para datasets pequeños, necesitamos algo más: validación cruzada

División train/test

Validación cruzada K-fold

  • Dividimos los datos en K partes (folds) de tamaño similar
  • Entrenamos K veces, cada vez usando K-1 folds para entrenamiento y 1 fold para validación
  • Repetimos K veces, rotando el fold de validación
  • Promediamos los resultados de las K iteraciones
  • Cada observación es usada para validación exactamente una vez
  • Más confiable que una sola división, especialmente con pocos datos
  • K = 5 o K = 10 son los valores más comunes

Validación cruzada K-fold

Estratificación y otras estrategias

Estratificación

  • Asegura que cada fold tenga la misma proporción de clases que el dataset completo
  • Necesaria cuando las clases están desbalanceadas
  • En tidymodels: initial_split(datos, strata = variable_respuesta)

Validación temporal (time series split)

  • Para datos con estructura temporal (series de tiempo)
  • Nunca entrenar con datos del futuro para predecir el pasado
  • Se entrena con datos anteriores, se valida con datos posteriores

Leave-One-Out (LOO)

  • K = N (cada observación es un fold)
  • Útil con muy pocos datos, pero costoso computacionalmente

Validación temporal

Datos: ene feb mar abr may jun jul ago

Fold 1:
  Train: ene feb mar
  Test:  abr

Fold 2:
  Train: ene feb mar abr
  Test:  may

Fold 3:
  Train: ene feb mar abr may
  Test:  jun

... y así sucesivamente


La validación temporal es necesaria para datos con dependencia temporal.

¿Cuántos datos necesito?

  • Pregunta frecuente sin respuesta universal
  • Depende de:
    • Complejidad del problema: ¿cuántas variables? ¿relaciones lineales o no lineales?
    • Ruido en los datos: datos limpios necesitan menos observaciones
    • Complejidad del modelo: modelos complejos necesitan más datos
    • Número de clases: más clases = más datos por clase
  • Reglas prácticas (muy aproximadas):
    • Clasificación: al menos 50-100 por clase minoritaria
    • Deep learning: miles a millones de ejemplos

Curvas de aprendizaje

Con más datos, el rendimiento mejora, pero con rendimientos decrecientes.

A veces más datos ayudan más que un modelo más complejo.

Sobreajuste y sesgo-varianza

¿Qué es el sobreajuste?

  • Sobreajuste (overfitting): el modelo funciona muy bien con los datos de entrenamiento pero mal con datos nuevos
  • El modelo ha memorizado el conjunto de entrenamiento, incluyendo su ruido y particularidades
  • No ha aprendido los patrones subyacentes
  • Señales de sobreajuste:
    • Rendimiento excelente en entrenamiento
    • Rendimiento pobre en test
    • La brecha crece con la complejidad del modelo
  • Piénsenlo así: memorizar las respuestas del examen vs. entender la materia
  • El estudiante que memoriza fracasa cuando las preguntas se reformulan

Sobreajuste visualizado

Fuente: X.com

Subajuste vs. sobreajuste

Subajuste

  • Modelo demasiado simple
  • Alto sesgo, baja varianza
  • Malo en entrenamiento Y en test
  • No captó el patrón
  • Solución: modelo más complejo

Buen ajuste

  • Complejidad adecuada
  • Sesgo y varianza equilibrados
  • Bueno en ambos conjuntos
  • Captura el patrón verdadero
  • Esto es lo que buscamos

Sobreajuste

  • Modelo demasiado complejo
  • Bajo sesgo, alta varianza
  • Excelente en entrenamiento, malo en test
  • Memorizó el ruido
  • Solución: regularización

El compromiso sesgo-varianza

  • Sesgo (bias): error por suposiciones simplificadoras del modelo. Un modelo con alto sesgo “no presta atención” a los datos
  • Varianza: error por sensibilidad excesiva a los datos de entrenamiento. Un modelo con alta varianza cambia mucho con cada muestra
  • No se pueden minimizar ambos al mismo tiempo: al reducir uno, el otro tiende a aumentar
  • El objetivo es encontrar el punto medio donde el error total es mínimo
  • En la práctica:
    • Modelos simples (regresión lineal): alto sesgo, baja varianza
    • Modelos complejos (redes neuronales profundas): bajo sesgo, alta varianza
    • Regularización ayuda a controlar la varianza sin aumentar demasiado el sesgo

Compromiso sesgo-varianza

A medida que el modelo se vuelve más complejo, el sesgo disminuye (la curva baja) pero la varianza aumenta (la curva sube).

Regularización: controlando la complejidad

  • Regularización: técnica para penalizar la complejidad del modelo
  • Agrega un término de penalización a la función de pérdida
  • Obliga al modelo a mantener coeficientes pequeños
  • Reduce la varianza a costa de un pequeño aumento en el sesgo

Tipos principales:

  • L1 (LASSO): puede llevar coeficientes a exactamente cero (selección de variables)
  • L2 (Ridge): reduce coeficientes pero no los elimina
  • Elastic Net: combinación de L1 y L2

Lo veremos en detalle en el Día 2 cuando trabajemos con regresión.

Intuición de la regularización

Sin regularización:

Modelo: y = 15.3x₁ - 42.7x₂ + 89.1x₃

Coeficientes grandes = modelo sensible
a pequeños cambios en los datos

Con regularización:

Modelo: y = 2.1x₁ - 1.8x₂ + 0.5x₃

Coeficientes pequeños = modelo más
estable y generalizable


La regularización es como pedirle al modelo que sea “parsimonioso”.

Cómo detectar sobreajuste en la práctica

Señales de alarma:

  1. Gran brecha entre rendimiento en train y test
  2. El modelo mejora en train pero empeora en validación
  3. Coeficientes o pesos muy grandes
  4. El modelo es muy sensible a pequeños cambios en los datos

Estrategias para combatirlo:

  • Más datos (si es posible)
  • Regularización (L1, L2, Elastic Net)
  • Reducir complejidad del modelo
  • Validación cruzada para evaluar de forma más robusta

Curvas de entrenamiento

Cuando las curvas se separan, el modelo está sobreajustando.

El punto donde se cruzan es donde deberíamos detenernos.

Métricas de evaluación

La paradoja de la precisión

Escenario: están construyendo un modelo para predecir si los pacientes tienen una enfermedad rara que afecta a 1 de cada 1.000 personas.

Un colega les muestra un modelo y les dice con orgullo: “Logra un 99,9% de accuracy (exactitud)”

Pregunta: ¿es bueno este modelo?

Piénsenlo 30 segundos…

La verdad incómoda: ese modelo “99,9% preciso” no detecta ni un solo caso real. Simplemente predice “sano” para todos. Cada paciente enfermo es ignorado.

La accuracy (exactitud) no basta, especialmente con clases desbalanceadas.

La matriz de confusión

  • Una tabla que muestra todos los resultados posibles de las predicciones
  • Cuatro cantidades clave:
    • Verdaderos Positivos (VP): correctamente predicho como positivo
    • Verdaderos Negativos (VN): correctamente predicho como negativo
    • Falsos Positivos (FP): predicho como positivo, pero era negativo (Error Tipo I)
    • Falsos Negativos (FN): predicho como negativo, pero era positivo (Error Tipo II)
  • Todas las métricas de clasificación se derivan de estos cuatro números

Visualización de la matriz de confusión

Precisión y recall

Precision = VP / (VP + FP)

  • Cuando el modelo dice “sí”, ¿con qué frecuencia acierta?
  • Alta precisión = pocas falsas alarmas
  • Importante cuando los falsos positivos son costosos (spam, fraude)

Recall = VP / (VP + FN)

  • De todos los positivos reales, ¿cuántos encontramos?
  • Alto recall = no nos perdemos muchos positivos
  • Importante cuando los falsos negativos son costosos (enfermedades, seguridad)

La mayoría de los clasificadores generan una puntuación de probabilidad. Mover el umbral cambia el equilibrio entre precisión y recall. No se pueden maximizar ambos

El trade-off entre precisión y recall

Fuente: Analytics Vidhya

AUC-ROC

AUC-ROC

  • Curva ROC: grafica tasa de verdaderos positivos vs. falsos positivos
  • AUC: área bajo la curva ROC (0.5 = azar, 1.0 = perfecto)
  • Mide qué tan bien el modelo separa las clases en general
  • Independiente del umbral: evalúa todas las probabilidades
  • Muy usado para comparar clasificadores
AUC Interpretación
0.5 No mejor que azar
0.7-0.8 Aceptable
0.8-0.9 Bueno
>0.9 Excelente

Área bajo la curva ROC (AUC). El modelo perfecto (verde, AUC = 1) llega directamente a la esquina superior izquierda sin falsos positivos; el modelo aleatorio sigue la diagonal (rojo, AUC = 0,5). Cuanto más se aleja la curva azul de la diagonal, mejor distingue el modelo entre positivos y negativos.

Métricas de regresión

  • Para regresión (predecir números), necesitamos métricas diferentes:
Métrica Fórmula Intuición
MAE Media de real - predicho
MSE Media de (real - predicho)² Error cuadrado promedio (penaliza errores grandes)
RMSE \(\sqrt{\text{MSE}}\) Lo mismo que MSE, pero en unidades originales
1 - (SS_res / SS_tot) Proporción de varianza explicada

Ejemplos sencillos:

  • MAE: predigo 10 pizzas, llegan 12, error de 2. Predigo 10, llegan 8, error de 2. MAE = 2 pizzas
  • RMSE: un día me equivoco por 2, otro día por 10. RMSE penaliza mucho más el error de 10 que el de 2
  • : R² = 0,8 significa que el modelo explica el 80% de la variación; el 20% queda sin explicar

¿Qué métrica elegir?

  • No existe una métrica “mejor” en general: depende del contexto
  • Preguntas para orientarse:
    • ¿Cuál es el costo de un falso positivo? (decir “sí” cuando es “no”)
    • ¿Cuál es el costo de un falso negativo? (decir “no” cuando es “sí”)
    • ¿Las clases están balanceadas o desbalanceadas?
    • ¿Qué acción se tomará con base en la predicción?
Escenario Métrica prioritaria
Diagnóstico médico Recall (no perder enfermos)
Filtro de spam Precision (no perder correos legítimos)
Predicción de ventas MAE o RMSE
Comparar modelos (varianza explicada)

Diferentes métricas para diferentes objetivos

Fuente: Medium

Selección de modelos

¿Qué modelo usar?

  • No existe un modelo “mejor” para todos los problemas
  • Depende de:
    • Cantidad de datos disponibles
    • Interpretabilidad requerida
    • Tiempo de entrenamiento aceptable
    • Tipo de relaciones en los datos

Principio de parsimonia:

  • Empezar con modelos simples (regresión, árboles)
  • Aumentar complejidad solo si es necesario
  • Un modelo simple que funciona bien es mejor que uno complejo que funciona igual

Guía práctica

Situación Modelo sugerido
Pocos datos, interpretabilidad alta Regresión logística/lineal
Datos moderados, interpretabilidad media Árboles, Random Forest
Muchos datos, rendimiento máximo Gradient Boosting, Redes
Relaciones muy no lineales Random Forest, XGBoost
Texto Transformers, BERT


En la práctica, probar varios modelos y comparar con validación cruzada.

Reproducibilidad en ML

¿Por qué importa la reproducibilidad?

  • Reproducibilidad: poder obtener los mismos resultados con los mismos datos y código
  • Necesaria para:
    • Verificar resultados propios y ajenos
    • Colaborar con otros investigadores
    • Debugging: entender qué salió mal
    • Producción: desplegar el mismo modelo que probamos

Problemas comunes:

  • Diferentes versiones de paquetes
  • Semillas aleatorias no fijadas
  • Datos no versionados
  • Código no documentado
  • Hiperparámetros no registrados

Buenas prácticas

  1. Fijar semillas aleatorias

    set.seed(2026)
  2. Documentar versiones

    sessionInfo()
  3. Usar control de versiones

    • Git para código
    • DVC para datos (si son grandes)
  4. Registrar experimentos

    • Qué modelo, qué hiperparámetros
    • Qué datos, qué preprocesamiento
    • Qué métricas obtuvieron

Herramientas para reproducibilidad

En R:

  • renv: gestión de dependencias (versiones de paquetes)
  • targets: pipelines reproducibles
  • Quarto/RMarkdown: código + documentación juntos
  • Git: control de versiones

En general:

  • Docker: contenedores con ambiente completo
  • MLflow: tracking de experimentos
  • DVC: versionado de datos

Ejemplo: estructura de proyecto reproducible

mi_proyecto/
├── README.md           ← descripción
├── renv.lock           ← versiones de paquetes
├── data/
│   ├── raw/            ← datos originales
│   └── processed/      ← datos procesados
├── scripts/
│   ├── 01-preprocess.R
│   ├── 02-train.R
│   └── 03-evaluate.R
├── models/             ← modelos guardados
└── reports/            ← resultados


Invertir en reproducibilidad ahorra tiempo a futuro.

Resumen y preparación para el laboratorio

El ecosistema tidymodels

  • tidymodels es un conjunto de paquetes de R para modelado de datos
  • Sigue la filosofía del tidyverse: código legible, consistente y modular
  • Paquetes principales:
    • rsample: división de datos (train/test, validación cruzada)
    • parsnip: especificación de modelos (interfaz unificada)
    • yardstick: métricas de evaluación
    • workflows: combinar preprocesamiento + modelo
    • recipes: preprocesamiento de datos
  • Ventaja: misma sintaxis para todos los modelos, ya sea regresión logística, random forest o redes neuronales
tidymodels
├── rsample    → dividir datos
├── recipes    → preprocesar
├── parsnip    → especificar modelo
├── workflows  → combinar todo
├── tune       → ajustar hiperparámetros
└── yardstick  → evaluar


El flujo de trabajo en código:

# 1. Dividir
datos_split <- initial_split(datos)

# 2. Especificar modelo
modelo <- logistic_reg() |>
  set_engine("glm")

# 3. Ajustar
ajuste <- fit(modelo, formula, training(datos_split))

# 4. Evaluar
predicciones <- predict(ajuste, testing(datos_split))

Resumen de la sesión

Conceptos fundamentales:

  • El flujo de trabajo de ML tiene 5 pasos: recoger, preprocesar, dividir, entrenar, evaluar
  • La calidad de los datos determina la calidad del modelo
  • El feature engineering puede mejorar mucho un modelo simple
  • Dividimos los datos en entrenamiento y prueba para evaluar generalización
  • La validación cruzada es más confiable que una sola división

Problemas y soluciones:

  • El sobreajuste ocurre cuando el modelo memoriza en lugar de aprender
  • La regularización controla la complejidad del modelo
  • La accuracy no es suficiente: necesitamos precisión, recall, AUC-ROC
  • Los hiperparámetros se ajustan con validación, no con test
  • La reproducibilidad es necesaria para verificar y colaborar

Próximos pasos

  • Ahora: Laboratorio práctico (Sesiones 1.3 y 1.4)
    • Primer flujo de trabajo con tidymodels
    • Clasificación con regresión logística
    • Evaluación y comparación de modelos
  • Mañana (Día 2): Aprendizaje supervisado
    • Sesión 2.1: Clasificación (regresión logística, árboles de decisión, random forest)
    • Sesión 2.2: Regresión y predicción (LASSO, Ridge, Elastic Net)
  • Vamos a aplicar todo lo que vimos hoy con modelos más sofisticados

Nos vemos en el laboratorio! 🤓