Sobes.tech
Middle — Senior

Каква е разликата между L1 и L2 регуляризацията?

sobes.tech AI

Отговор от AI

Регуляризацията L1 и L2 са методи за предотвратяване на пренасищане в модели за машинно обучение чрез добавяне на наказание към функцията за загуба.

  • L1 регуляризация (Lasso) добавя към функцията за загуба сумата на абсолютните стойности на коефициентите на модела:

    [ \lambda \sum |w_i| ]

    Това води до разредени модели — много коефициенти се стремят към нула, което помага при избора на характеристики.

  • L2 регуляризация (Ridge) добавя сумата на квадратите на коефициентите:

    [ \lambda \sum w_i^2 ]

    Тя кара коефициентите да бъдат малки, но рядко ги нулира напълно, което подобрява стабилността на модела.

Основни разлики:

  • L1 насърчава разреденост и избор на характеристики.
  • L2 намалява големината на коефициентите, правейки модела по-стабилен.

Пример в Python с sklearn:

from sklearn.linear_model import LogisticRegression

# L1 регуляризация
model_l1 = LogisticRegression(penalty='l1', solver='liblinear')

# L2 регуляризация
model_l2 = LogisticRegression(penalty='l2')

Изборът между тях зависи от задачата: ако е важен изборът на характеристики — L1, ако е необходима стабилност и изглаждане — L2.