Sobes.tech
Back to questions
Middle — Senior
10

В чем разница между L1 и L2 регуляризацией?

Companies where asked
СБЕРСБЕР
ПАО Газпром нефть

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 — для стабильности и сглаживания модели.
  • Оба метода помогают бороться с переобучением.
  • Выбор зависит от задачи и требований к интерпретируемости модели.