El trade-off sesgo–varianza
En simple: lee esto primero
Un modelo puede fallar de dos maneras: por ser demasiado simple (sesgo) o por ser demasiado nervioso y cambiar con cada dato (varianza).
Piensa en tiro al blanco. Sesgo: todos tus tiros caen juntos pero lejos del centro (apuntas mal). Varianza: tus tiros quedan dispersos por todos lados (pulso tembloroso). Lo ideal: juntos y en el centro.
- Modelo muy simple → mucho sesgo (underfitting). Modelo muy complejo → mucha varianza (overfitting).
- Diagnóstico rápido: error alto en train y en test → sesgo. Error bajo en train pero alto en test → varianza.
- Más datos ayudan contra la varianza; un modelo más flexible ayuda contra el sesgo.
- sesgo
- error sistemático: el modelo se equivoca siempre hacia el mismo lado porque es muy rígido.
- varianza
- qué tanto cambiaría el modelo si lo entrenaras con otros datos parecidos.
- ruido irreducible
- la parte del error que ningún modelo puede eliminar (azar real en los datos).
- trade-off
- compromiso: bajar uno suele subir el otro.
Más abajo viene la versión completa, con fórmulas. Si una palabra aparece subrayada con puntos, pasa el mouse (o tócala) para ver qué significa.
Más flexibilidad siempre baja el error de entrenamiento. El arte es mantener bajo el error de generalización. Esta unidad hace precisa esa tensión y la gobierna con regularización y selección de modelos.
Diagnóstico con dos errores
Sección titulada «Diagnóstico con dos errores»Ajusta con train y mide el error en train y validación; la comparación es el diagnóstico:
| Caso | Train | Validación | Lectura |
|---|---|---|---|
| Underfit (grado 1) | alto (0.38) | alto (0.70) | demasiado simple para captar el patrón |
| Bien (grado 4) | bajo (0.08) | bajo (0.16) | ambos bajos y cercanos: el objetivo |
| Overfit (grado 12) | ínfimo (0.03) | enorme (7.69) | brecha grande: memorizó el ruido |
La curva de complejidad: el error de entrenamiento cae monótonamente con la complejidad; el de validación tiene forma de U (underfit a la izquierda, overfit a la derecha). El punto dulce es el mínimo de la U. Un error de entrenamiento bajo no prueba nada: puede ser memorización.
El experimento mental: re-muestrear y re-ajustar
Sección titulada «El experimento mental: re-muestrear y re-ajustar»Solo vemos un training set, pero es una muestra aleatoria de un proceso . Imagina sacar muchos training sets nuevos del mismo proceso y re-ajustar el mismo modelo en cada uno: datos distintos → ajustes distintos. Promédialos: . Dos cosas pueden salir mal:
- puede estar lejos de la verdad → sesgo.
- Los ajustes pueden dispersarse mucho → varianza.
Re-muestrear y re-ajustar: sesgo y varianza medidos
Cada línea gris es el mismo modelo entrenado con un training set distinto (otra muestra del mismo proceso). La línea violeta es su promedio f̄. Sesgo = distancia de f̄ a la verdad; varianza = cuánto se dispersan las grises.
Definiciones precisas
Sección titulada «Definiciones precisas»En cada entrada , promediando sobre training sets re-muestreados:
- Sesgo : error sistemático que la familia de modelos no puede quitarse.
- Varianza : cuánto tambalea un ajuste alrededor del promedio cuando cambia el training set.
- Ruido irreducible : la varianza de , presente aun con el modelo perfecto.
La ecuación
Sección titulada «La ecuación»Para pérdida cuadrática, el error esperado en un punto nuevo se parte exactamente en tres:
No puedes anular ambos: bajar uno suele subir el otro. La U de validación es sesgo² + varianza (+ σ²): el sesgo² cae con la complejidad, la varianza sube, y el valle de la suma es la mejor complejidad.
Derivación (opcional pero sale en exámenes)
Sección titulada «Derivación (opcional pero sale en exámenes)»Tres hechos: (1) linealidad: ; (2) y ; (3) independencia: si y , entonces .
Ver la derivación completa
Fija un punto de test . con , , independiente del training set. depende del training set y .
Identidad clave. Para una constante y cualquier aleatorio: . Prueba: escribe y eleva al cuadrado. El término cruzado es (hecho 1). Queda . ∎
Paso 1 — separar el ruido. . El término cruzado es 0 (hecho 3: y de media cero) y .
Paso 2 — aplicar la identidad con , : .
Juntando: . ∎
En euros: el alquiler de un departamento
Sección titulada «En euros: el alquiler de un departamento»Departamento de 70 m², 2 cuartos, alquiler justo €1000. Re-entrenando con anuncios de distintos meses, las predicciones para este depa son €860, €880, €900, €950, €960… con promedio .
- Sesgo : en promedio, sistemáticamente €90 abajo.
- Varianza: cuánto se dispersan esas predicciones alrededor de €910.
- Modelo simple («alquiler ≈ promedio del barrio»): apretado pero corrido → sesgo alto, varianza baja.
- Modelo flexible (un árbol profundo): oscila entre €700 y €1300 → sesgo bajo, varianza alta.
- Ruido irreducible: dos depas idénticos en todo lo registrado igual se alquilan a €980 y €1080 (vista, fecha…). Ningún modelo lo borra.
¿Cómo bajar cada uno?
Sección titulada «¿Cómo bajar cada uno?»| Para bajar… | Haz… |
|---|---|
| Sesgo (underfit) | modelo más flexible: más features, más grado, menos λ, más C, más γ, árbol más profundo |
| Varianza (overfit) | más datos, regularizar (λ ↑), modelo más simple, podar el árbol, promediar modelos (bagging) |
Diagnóstico rápido en el examen
Sección titulada «Diagnóstico rápido en el examen»| Síntoma | Causa probable | Qué hacer |
|---|---|---|
| Train alto, validación alto (parecidos) | sesgo alto / underfit | modelo más flexible, más features, menos regularización |
| Train bajo, validación mucho más alto | varianza alta / overfit | más datos, más regularización, modelo más simple, podar, ensembles |
| Ambos bajos y cercanos | buen balance | parar; reportar el test una vez |
| Validación cambia mucho entre particiones | varianza de la estimación | K-fold en vez de una sola partición |
| Más datos no mejoran nada | sesgo domina o ruido irreducible | cambiar de familia de modelos o mejorar las features |
En código: curvas de complejidad y de aprendizaje
Sección titulada «En código: curvas de complejidad y de aprendizaje»from sklearn.model_selection import validation_curve, learning_curvefrom sklearn.pipeline import make_pipelinefrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.linear_model import LinearRegressionimport numpy as np
model = make_pipeline(PolynomialFeatures(), LinearRegression())degrees = np.arange(1, 13)tr, va = validation_curve(model, X, y, param_name='polynomialfeatures__degree', param_range=degrees, cv=5, scoring='neg_root_mean_squared_error')# −tr.mean(1) baja siempre; −va.mean(1) dibuja la U → elegir el mínimo
sizes, tr, va = learning_curve(model.set_params(polynomialfeatures__degree=9), X, y, cv=5)# brecha grande que se cierra con más n ⇒ varianza; ambas altas y planas ⇒ sesgoAutoevaluación
0/5 correctas · 0 respondidasPara profundizar
Sección titulada «Para profundizar»Fuente ·ML_Course_regularization_and_model_selection.pdf (slides 4–18) · ML_Course/session-03a-bias-variance.ipynb