Middle — Senior
Jaka jest różnica między regularyzacją L1 a L2?
sobes.tech AI
Odpowiedź od AI
Regularyzacja L1 i L2 to metody zapobiegania nadmiernemu dopasowaniu w modelach uczenia maszynowego poprzez dodanie kary do funkcji straty.
-
Regularyzacja L1 (Lasso) dodaje do funkcji straty sumę wartości bezwzględnych współczynników modelu:
[ \lambda \sum |w_i| ]
To prowadzi do rzadkich modeli — wiele współczynników dąży do zera, co pomaga w wyborze cech.
-
Regularyzacja L2 (Ridge) dodaje sumę kwadratów współczynników:
[ \lambda \sum w_i^2 ]
Sprawia, że współczynniki są małe, ale rzadko je całkowicie zeruje, co poprawia stabilność modelu.
Główne różnice:
- L1 sprzyja rzadkości i wyborowi cech.
- L2 zmniejsza wielkość współczynników, czyniąc model bardziej stabilnym.
Przykład w Pythonie z użyciem sklearn:
from sklearn.linear_model import LogisticRegression
# Regularyzacja L1
model_l1 = LogisticRegression(penalty='l1', solver='liblinear')
# Regularyzacja L2
model_l2 = LogisticRegression(penalty='l2')
Wybór między nimi zależy od zadania: jeśli ważny jest wybór cech — L1, jeśli potrzebna jest stabilność i wygładzanie — L2.