Ответ
L1-регуляризация (Lasso) — это метод регуляризации, который добавляет к функции потерь модели сумму абсолютных значений весов (L1-норму). Её ключевая особенность — способность обнулять веса менее значимых признаков, создавая разреженные модели.
Интерпретация и эффекты:
- Разреженность (Sparsity): L1 стремится обнулить некоторые коэффициенты, выполняя автоматический отбор признаков. Это упрощает модель и улучшает интерпретируемость.
- Контроль переобучения: Как и другие виды регуляризации, L1 штрафует большие веса, помогая бороться с переобучением.
- Сравнение с L2 (Ridge): L2 (сумма квадратов весов) лишь уменьшает величину весов, но редко обнуляет их полностью. L1 же часто приводит к точному нулю.
Практический пример с sklearn:
from sklearn.linear_model import Lasso
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
# Генерация данных
X, y = make_regression(n_samples=100, n_features=10, noise=0.1, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучение модели Lasso
model = Lasso(alpha=0.5) # alpha — гиперпараметр силы регуляризации
model.fit(X_train, y_train)
# Просмотр коэффициентов: некоторые будут равны 0
print("Коэффициенты модели:", model.coef_)
print("Количество ненулевых признаков:", sum(model.coef_ != 0))
Когда использовать? L1 особенно полезен в задачах с большим количеством признаков, где лишь часть из них действительно информативна, и требуется построить компактную, интерпретируемую модель.