Atlasingeniería

Aprendizaje automáticoAprendizaje supervisadoTema 1

Regresión lineal y regularización

El modelo más simple que existe sigue siendo el más usado, y entenderlo bien da la mitad del resto: función de costo, solución cerrada, y qué hacen exactamente las penalizaciones L1 y L2.

Para este tema conviene tener claro:Cuadrados mínimos: la mejor solución de un sistema imposibleRegresión lineal simple

Trazar la recta que mejor pasa entre unos puntos es de las primeras cosas que uno aprende, y sigue siendo el modelo más usado en producción. No por nostalgia: es rápido, se explica, y su estructura reaparece adentro de casi todos los modelos más complejos.

El modelo y qué se minimiza

El modelo predice una combinación lineal de los atributos: y^=w0+w1x1++wnxn\hat{y}=w_0+w_1x_1+\dots+w_nx_n. Los pesos se eligen minimizando la suma de los errores al cuadrado.

Elevar al cuadrado no es arbitrario: hace la función diferenciable, penaliza más los errores grandes y corresponde a suponer ruido gaussiano. También trae la contra: un solo valor atípico puede torcer la recta entera, porque su error cuenta al cuadrado.

Antes de seguir, predecí

Dos variables casi idénticas en una regresión lineal sin regularizar. ¿Qué pasa con los coeficientes?

Hay solución cerrada, y por qué igual no se usa

Hay solución cerrada. El costo es una función cuadrática y convexa de los pesos, así que tiene un único mínimo que se obtiene resolviendo un sistema de ecuaciones.

Eso significa que no hace falta optimización iterativa ni hiperparámetros para entrenarlo. La limitación aparece con muchos atributos, porque resolver el sistema implica invertir una matriz grande; ahí conviene descenso por gradiente. Y si dos atributos están muy correlacionados, el sistema queda mal condicionado y los pesos se vuelven enormes y opuestos.

Penalizar el tamaño de los pesos

Ese es el problema que ataca la regularización: agregar al costo una penalización por el tamaño de los pesos, para que el modelo prefiera soluciones más chicas.

Ridge penaliza la suma de los cuadrados. Achica todos los pesos hacia cero de forma suave y estabiliza el caso de atributos correlacionados, repartiendo el peso entre ellos en vez de dárselo todo a uno.

Lasso lleva coeficientes a cero: selecciona

Lasso penaliza la suma de los valores absolutos, y la diferencia no es cosmética: lleva coeficientes exactamente a cero. Es decir, selecciona atributos.

La razón geométrica es la forma de la restricción: la región del valor absoluto tiene vértices sobre los ejes, y el óptimo tiende a caer en un vértice, donde alguna coordenada es cero. La región de ridge es una esfera, sin vértices, y por eso achica sin anular. Elastic net combina las dos.

Acá x es un peso del modelo y la curva es lo que cuesta tenerlo. En 0 la mezcla es pura ridge: cerca del cero la penalización se aplana y ya casi no empuja, así que el peso se achica pero nunca llega. Llevala a 1 y aparece el vértice: la pendiente no se va a cero, sigue empujando con la misma fuerza hasta clavar el peso en cero exacto.f(x) = mezcla * abs(x) + (1 - mezcla) * x ^ 2

Sin estandarizar, la penalización es arbitraria

Un detalle que arruina resultados: la regularización penaliza el tamaño del peso, y ese tamaño depende de las unidades del atributo. Un atributo medido en metros y otro en kilómetros reciben penalizaciones incomparables.

Por eso hay que estandarizar los atributos antes de regularizar. Y el término independiente no se penaliza: no mide sensibilidad a ningún atributo, sólo dónde está centrada la respuesta.

Lineal es en los pesos, no en los datos

“Lineal” se refiere a los pesos, no a los datos. Se pueden agregar potencias, logaritmos o productos entre atributos y el modelo sigue siendo lineal en sus parámetros, con toda su matemática intacta. Eso lo vuelve mucho más flexible de lo que su nombre sugiere.

Lo que sigue exigiendo cuidado es la interpretación. Un coeficiente dice cuánto cambia la predicción al mover ese atributo manteniendo los otros fijos, que puede ser una situación que en los datos nunca ocurre. Y sigue siendo correlación: no autoriza a afirmar qué pasaría si se interviniera.

Ridge, lasso y el paso que no se puede saltear

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import RidgeCV, LassoCV

# Estandarizar es obligatorio: la penalización castiga el tamaño del coeficiente,
# y el tamaño depende de las unidades del atributo
ridge = Pipeline([
    ("escalar", StandardScaler()),
    ("modelo", RidgeCV(alphas=[0.01, 0.1, 1, 10, 100])),   # elige alpha por validación cruzada
])

lasso = Pipeline([
    ("escalar", StandardScaler()),
    ("modelo", LassoCV(cv=5)),
])

lasso.fit(X_train, y_train)
coeficientes = lasso.named_steps["modelo"].coef_
usados = (coeficientes != 0).sum()   # lasso pone en cero: selecciona atributos

Sin el escalador, un atributo medido en metros y otro en kilómetros reciben penalizaciones que difieren por un factor de mil, y el modelo va a achicar el que tiene números grandes por una razón que no tiene nada que ver con su importancia.

El último renglón es la diferencia práctica entre los dos: lasso deja coeficientes exactamente en cero, así que el modelo dice cuáles atributos usa. Ridge los achica todos y no descarta ninguno.

Por qué sigue siendo el primer modelo

LinealÁrbolesRed neuronal
Se explica a alguien de negociosí, coeficiente por coeficientecon esfuerzono
Funciona con pocos datosno
Necesita escalar los atributossí, si hay regularizaciónno
Captura no linealidades solono
Extrapola fuera del rango vistosí, con cuidadono: devuelve el bordeimpredecible
Tiempo de entrenamientosegundosminutoshoras
La primera fila explica por qué sigue en producción en bancos y seguros: donde hay que justificar una decisión ante un regulador o un cliente, un modelo que no se puede explicar no se puede usar.

Cierre

Mínimos cuadrados con solución cerrada, convexa y sensible a atípicos. Ridge achica los pesos y estabiliza correlaciones; lasso los lleva a cero y selecciona. Hay que estandarizar antes de penalizar, y lineal en los parámetros permite atributos no lineales.

Autoevaluación

¿Lo entendiste?

¿Por qué se minimiza el error al cuadrado y no el absoluto?
La regresión lineal tiene solución cerrada. ¿Qué implica?
¿Qué diferencia hay entre la regularización L1 y la L2?
¿Por qué la estructura de la regresión lineal reaparece en modelos más complejos?