Sobes.tech
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.