Регрессия LASSO — это метод контролируемой и регуляризации, используемый для уменьшения дисперсии и выбора признаков.

LASSO расшифровывается как Оператор наименьшего абсолютного сокращения и выбора.

Это помогает упорядочить модель, выбирая релевантные функции и уменьшая нерелевантные функции — отсюда и название предполагает «Уменьшение и выбор».

Прежде чем углубиться в концепцию, сначала нам нужно понять определение регуляризации.

Регуляризация - это метод предотвращения переобучения модели путем добавления штрафного члена или смещения, чтобы модель могла лучше обобщать с точки зрения прогнозирования значения для невидимых данных.

Давайте разберемся с контрастом линейной регрессии 😃

Уравнение модели: f(x) = β0 + β1x1 + β2x2

Как и любая другая модель, она также пытается уменьшить функцию стоимости, чтобы более точно прогнозировать невидимые данные.

Метка Yi — True, где остальное — прогнозируемое значение!

Теперь, добавив штрафной член, который представляет собой сумму абсолютного значения всех коэффициентов, присутствующих в модели. Так сформировалась регрессия LASSO.

Здесь λ — это гиперпараметр, который можно настроить для создания точки компромисса смещения и дисперсии для обобщения модели.

До сих пор Мы поняли:

  1. Что такое ЛАССО-регрессия
  2. Что такое регуляризация
  3. Как регуляризация LASSO точно вписывается в функцию стоимости линейной модели

Теперь начинается интересная часть объяснения, чтобы найти логику математики этого ЛАССО 🎃, где ЛАССО уменьшает значение коэффициентов до нуля, поэтому этой функции можно избежать.

Итак, просто взглянув на изображение, LASSO имеет область ограничения ромбовидного типа и имеет углы на каждой оси. Когда затмение (функция стоимости линейной регрессии) пересекается с любым из этих углов области ЛАССО, тогда один из коэффициентов становится равным нулю. 😟 😝

Чтобы полностью понять, давайте сначала разберемся с градиентным спуском.

Градиентный спуск — это алгоритм оптимизации, который выполняется итеративно для минимизации значения функции стоимости или, говоря более математическим языком, — для поиска глобальных минимумов.

Однако, чтобы быть конкретным, мы будем следовать субградиентному спуску, чтобы удовлетворить функцию стоимости LASSO, поскольку из-за характера уравнения и распределения данных функция стоимости LASSO не является дифференцируемой в точке 0.

Наклон абсолютной функции равен -1 для всех отрицательных значений и равен 1 для всех положительных значений. Но наклон в 0 не определен!

Поскольку мы не можем точно знать, как будет выглядеть реальный градиент в этой точке, одна из идей состоит в том, чтобы посмотреть на градиенты в окрестности 0, а затем определить субградиент как промежуточный вектор. между градиентами вокруг нашей недифференцируемой точки.

Любое строго положительное число имеет знак 1, любое строго отрицательное число имеет знак -1, а для 0 мы можем просто определить, что знак равен 0, что для удобства является числом от -1 до 1.

Вот фрагмент кода, чтобы понять, как это работает под капотом.

# #The final w output. As you can see, first 3 w's are significant , the rest are very small
final w: [  9.65816491e-01   4.27099719e-01  -4.39501114e-01   7.26803718e-04
   1.44676529e-03   4.29653783e-03  -1.88827800e-02   5.01402266e-03
  -1.45435498e-02   2.98832870e-03  -1.94071569e-03  -1.47917010e-02
   3.56488642e-02   2.44495593e-02  -3.40885499e-03  -2.23948913e-02
  -8.56983401e-04   1.00292301e-02   3.33973800e-03   8.51922055e-03
  -3.72198952e-02   5.31823613e-03  -3.35052948e-02   7.15853488e-03
  -1.00094617e-02  -1.44190084e-03   2.96771082e-03  -6.51081371e-03
   3.54465569e-02  -3.30111666e-02   4.42377796e-03  -7.87768360e-03
   1.26511065e-02  -5.43831611e-04  -4.58914064e-04   5.53972101e-03
  -8.31677251e-03   8.63159114e-03  -6.17622135e-03  -3.08958154e-03
   1.39908214e-02   9.34415972e-03  -3.76350383e-03  -2.16322570e-03
   3.84337810e-03  -6.68382801e-04  -2.84473367e-03   2.48744388e-03
  -8.91564845e-03   6.97568406e-02]

Надеюсь, эта статья будет полезна.

Кредиты:

  1. Вы можете углубиться в субградиент: https://machinelearningcompass.com/machine_learning_math/subgradient_descent/
  2. https://mlforanalytics.com/2018/05/29/lasso-regression-and-its-implementation-with-python/