В чем разница между L1 и L2 регуляризацией?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
L1 и L2 регуляризации — это методы борьбы с переобучением, которые добавляют штраф к функции потерь. L1 регуляризация способствует разреженности модели, обнуляя некоторые коэффициенты, а L2 — уменьшает веса, делая их малыми, но не обнуляет. Выбор зависит от задачи и желаемой интерпретируемости модели.
Определение:
L1 регуляризация добавляет к функции потерь сумму абсолютных значений весов модели, что ведёт к разреженности (многие веса становятся нулями). L2 регуляризация добавляет сумму квадратов весов, что заставляет веса стремиться к нулю, но не обнуляет их полностью, обеспечивая более гладкое и стабильное решение.
Пример использования:
from sklearn.linear_model import LogisticRegression
# L1 регуляризация (Lasso)
model_l1 = LogisticRegression(penalty='l1', solver='liblinear')
model_l1.fit(X_train, y_train)
# L2 регуляризация (Ridge)
model_l2 = LogisticRegression(penalty='l2')
model_l2.fit(X_train, y_train)
Пояснение кода:
В примере создаются две модели логистической регрессии с разными типами регуляризации. Для L1 используется параметр penalty='l1' и подходящий решатель, который поддерживает L1. Для L2 — penalty='l2'. При обучении модели штрафы добавляются к функции потерь, что влияет на веса и помогает избежать переобучения.
Ключевые моменты:
- L1 регуляризация приводит к разреженным решениям, обнуляя часть весов.
- L2 регуляризация уменьшает веса, но не обнуляет их полностью.
- L1 полезна для отбора признаков, L2 — для стабильности и сглаживания модели.
- Оба метода помогают бороться с переобучением.
- Выбор зависит от задачи и требований к интерпретируемости модели.