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.