Sobes.tech
Middle — Senior

Qual è la differenza tra regolarizzazione L1 e L2?

sobes.tech AI

Risposta dell'AI

La regolarizzazione L1 e L2 sono metodi per prevenire l'overfitting nei modelli di machine learning aggiungendo una penalità alla funzione di perdita.

  • Regolarizzazione L1 (Lasso) aggiunge alla funzione di perdita la somma dei valori assoluti dei coefficienti del modello:

    [ \lambda \sum |w_i| ]

    Questo porta a modelli sparsi: molti coefficienti tendono a zero, aiutando nella selezione delle caratteristiche.

  • Regolarizzazione L2 (Ridge) aggiunge la somma dei quadrati dei coefficienti:

    [ \lambda \sum w_i^2 ]

    Essa rende i coefficienti piccoli, ma raramente li azzera completamente, migliorando la stabilità del modello.

Principali differenze:

  • L1 favorisce la sparsità e la selezione delle caratteristiche.
  • L2 riduce la grandezza dei coefficienti, rendendo il modello più stabile.

Esempio in Python con sklearn:

from sklearn.linear_model import LogisticRegression

# Regolarizzazione L1
model_l1 = LogisticRegression(penalty='l1', solver='liblinear')

# Regolarizzazione L2
model_l2 = LogisticRegression(penalty='l2')

La scelta tra i due dipende dal compito: se è importante la selezione delle caratteristiche — L1, se si cerca stabilità e smoothing — L2.