Inicio · Parte 14 — Matemática de Machine Learning
J(w) = ‖Xw − y‖² + λ‖w‖₁
sin solución cerrada: descenso por coordenadas o subgradiente
λ mayor ⟹ más coeficientes exactamente cero
Lasso penaliza la suma de valores absolutos en vez de la de cuadrados. El cambio parece menor y produce un comportamiento cualitativamente distinto: los coeficientes no solo se encogen, sino que llegan a valer exactamente cero, lo que convierte a Lasso en un selector automático de variables.
La explicación es geométrica y merece verse. La restricción ‖w‖₂ ≤ t es una bola redonda; la restricción ‖w‖₁ ≤ t es un rombo con vértices sobre los ejes. La solución es el punto donde las curvas de nivel del error tocan por primera vez la región admisible, y una curva de nivel elíptica toca un rombo con muchísima más probabilidad en un vértice que en una arista. Un vértice del rombo tiene coordenadas nulas.
El precio es que el valor absoluto no es derivable en cero, así que no hay solución cerrada y hay que recurrir al descenso por coordenadas o a métodos de subgradiente. Es un coste computacional asumible y ampliamente resuelto en las bibliotecas.
La elección entre Ridge y Lasso depende de lo que se crea del problema. Si se sospecha que solo unas pocas variables importan, Lasso las encuentra. Si se cree que todas contribuyen un poco, Ridge es mejor. Con variables muy correlacionadas Lasso elige una arbitrariamente y descarta el resto, lo que puede ser inestable, y por eso existe elastic net, que combina ambas penalizaciones.
Cuatro valores de λ y el número de ceros exactos.
λ pesos ceros
0,00 [2,031169 ; 1,489542 ; −0,354419] 0
0,05 [2,155953 ; 1,300580 ; −0,006201] 0
0,30 [1,795790 ; 1,377911 ; 0,000000] 1
1,00 [0,774479 ; 1,605474 ; 0,000000] 1
Con λ = 0,30 el tercer coeficiente es exactamente 0,
no un número pequeño: la variable queda eliminada.
Ridge con el mismo λ dejaría −0,0806: pequeño pero no nulo.
Geometría: la bola L1 tiene vértices en los ejes,
y el óptimo cae sobre ellos con alta probabilidad.
Lasso: L1 produce ceros exactos gracias a su geometría.
python classes/part-14-matematica-de-machine-learning/284-lasso-y-regularizacion-l1/lab.py
compmath run 284
λ=0.0λ=0.05λ=0.3λ=1.0geometriaL2_produce_cerosL1_selecciona_featureselastic_net{
"λ=0.0": {
"pesos": [
2.031169,
1.489542,
-0.354419
],
"coeficientes_exactamente_cero": 0,
"norma_L1": 3.87513
},
"λ=0.05": {
"pesos": [
2.155953,
1.30058,
-0.006201
],
"coeficientes_exactamente_cero": 0,
"norma_L1": 3.462733
},
"λ=0.3": {
"pesos": [
1.79579,
1.377911,
-0.0
],
"coeficientes_exactamente_cero": 1,
"norma_L1": 3.173701
},
"λ=1.0": {
"pesos": [
0.774479,
1.605474,
-0.0
],
"coeficientes_exactamente_cero": 1,
"norma_L1": 2.379953
},
"geometria": "la bola L1 tiene vértices en los ejes: el óptimo cae sobre ellos",
"L2_produce_ceros": false
}
Selección automática de variables, modelos dispersos, compressed sensing y análisis con muchas más características que observaciones.
Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.
10.1111/j.2517-6161.1996.tb02080.x verificado en Crossref (2026-08-19).10.1111/j.1467-9868.2005.00503.x verificado en Crossref (2026-08-19).