← capítulo

Elastic net

Regresión lineal con ambas penalizaciones a la vez: la L1 de lasso para dispersión, la L2 de ridge para estabilidad.

Una perilla, la proporción de mezcla, se desliza de ridge a lasso. El default cuando tienes muchas features correlacionadas y quieres dispersión sin que lasso elija favoritas.

El problema: features correlacionadas

s1 y s2 — colesterol y LDL — correlacionan en 0.897. Lasso se queda con una y suelta la otra al azar; ridge conserva ambas pero nunca pone nada en cero.

El objetivo

L(w,b)=12ni(y^iyi)2+λ[αw1+1α2w22]L(w, b) = \frac{1}{2n}\sum_{i}\left(\hat{y}_i - y_i\right)^2 + \lambda\left[\alpha\lVert w\rVert_1 + \frac{1-\alpha}{2}\lVert w\rVert_2^2\right]

La actualización: soft-threshold sobre un factor de encogimiento

wjS ⁣(ρj,  λα)1+λ(1α),S(z,γ)=sign(z)max(zγ,0)w_j \leftarrow \frac{S\!\left(\rho_j,\; \lambda\alpha\right)}{1 + \lambda(1-\alpha)}, \qquad S(z, \gamma) = \operatorname{sign}(z)\,\max(|z| - \gamma, 0)

Míralo: barrido de ridge → lasso

Fija λ=1\lambda = 1, barre α\alpha de 0 (ridge) a 1 (lasso), reajustando desde cero en cada frame. Mira el ajuste denso de ridge volverse disperso.

Diez coeficientes distintos de cero bajo ridge; siete bajo lasso. Mira a s2 desaparecer en el extremo derecho — eso es lasso rompiendo el grupo correlacionado.

El efecto de agrupamiento

Mismo λ\lambda, tres regímenes. Ridge y elastic net mantienen junto el par s1/s2; lasso vierte todo en s1 (-4.84) y corta s2 a cero.

Desde cero vs. librería

Descenso por coordenadas vs. sklearn.linear_model.ElasticNet, mismos λ\lambda y α\alpha, pacientes de diabetes apartados.

R² de prueba 0.3653 para ambos — los coeficientes coinciden hasta catorce decimales. Un solo minimizador convexo, todo solver correcto lo encuentra.

Conclusiones