ОБЗОР

Этот блог будет очень интересен для понимания точки зрения на регрессию гребня, лассо и эластичной сети, потому что я связываю его с одним из фильмов Болливуда. Увидев эту картинку, вы можете рассматривать этот велосипед регрессионной модели джай-виру и лассо как Амитабху, а Риджа как Дхармендру. Просто подумайте о том инциденте, когда они начинают бежать с этим байком из полиции, то же самое происходит, когда мы применяем лассо или гребень к регрессионной модели. Давайте сначала разберемся, что такое аркан и конек, а потом свяжем это с этой картинкой.

ЧТО ТАКОЕ РЕГРЕССИОННЫЙ АНАЛИЗ

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

Обыкновенный метод наименьших квадратов (OLS) является наиболее распространенным методом оценки для линейных моделей, и он применяется по уважительной причине. Пока ваша модель соответствует предположениям МНК для линейной регрессии, вы можете быть спокойны, зная, что получили наилучшую оценку.

Но в реальном мире выполнить допущения регрессии МНК будет очень сложно. Особенно предположение о «мультиколлинеарности». Предположения о мультиколлинеарности возникают, когда переменные-предикторы сильно коррелируют друг с другом и имеется много предикторов. Это отражено в приведенной выше формуле для дисперсии: если m приближается к n, дисперсия стремится к бесконечности. Когда возникает мультиколлинеарность, МНК-оценщик имеет тенденцию иметь очень большие варианты, хотя и с небольшим смещением. Однако оценщики с очень большими вариантами будут давать плохие оценки. Это явление называется переоснащением. На рисунке показано, что такое смещение и дисперсия. Представьте себе, что яблочко — это истинный параметр совокупности, который мы оцениваем, β, а выстрелы в него — это значения наших оценок, полученные с помощью четырех разных оценок — с низким смещением и дисперсией.

  • высокое смещение и дисперсия
  • низкое смещение и высокая дисперсия
  • высокое смещение и низкая дисперсия.

исходя из сложности модели, которая имеет 2 возможные ошибки, а именно:

  1. Недооснащение
  2. Переоснащение

Чтобы преодолеть недообучение или высокое смещение, мы можем в основном добавить новые параметры в нашу модель, чтобы увеличить сложность модели и, таким образом, уменьшить высокое смещение.

В качестве модели сложности, которую в случае линейной регрессии можно рассматривать как количество предикторов, она увеличивается, ожидаемая дисперсия также увеличивается, но смещение уменьшается. Беспристрастный OLS поместит нас в правую часть изображения, что далеко от оптимального, этот термин называется Переобучение.

Теперь, как мы можем преодолеть Overfitting для регрессионной модели?

В основном есть два метода преодоления переобучения:

1. Уменьшите сложность модели,

Чтобы уменьшить сложность модели, мы можем использовать для этого пошаговую регрессию (вперед или назад), но таким образом мы не сможем ничего сказать о влиянии удаленных переменных на отклик.

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

2. Регуляризация.

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

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

Существует два типа регуляризации:

  1. Регуляризация лассо
  2. Регуляризация хребта

Что такое регуляризация Лассо (L1)?

  • Это расшифровывается как оператор наименьшей абсолютной усадки и выбора.
  • Добавляет штраф L1
  • L1 представляет собой сумму модулей бета-коэффициентов
SSE+λ∑|βi|
λ = penalty
βi = slope of the curve

Здесь цель заключается в следующем: если λ = 0, мы получаем те же коэффициенты, что и при линейной регрессии. Если λ = сильно различается, все коэффициенты стремятся к нулю.

Что такое регуляризация хребта (L2)

  • Он добавляет L2 в качестве штрафа
  • L2 представляет собой сумму квадратов величин бета-коэффициентов
SSE+λ∑(βi)^2
λ = penalty
βi = slope of the curve

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

Некоторое практическое применение Ridge и lasso

мы берем набор данных из приложения CarDekho: -

после подготовки данных: -

from scipy.stats import zscore
X = dataset_pr[features].apply(zscore)
y = np.log10(dataset_pr['selling_price'])
Train test split:-
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X,y , test_size = 0.2, random_state = 0)
print(X_train.shape)
print(X_test.shape)
Fitting the model on Linear Regression:
lin_reg = LinearRegression()
lin_reg.fit(x_train, y_train)
lin_reg_y_pred = lin_reg.predict(x_test)
mse = mean_squared_error(y_test, lin_reg_y_pred)
print(mse)

Среднеквадратическая ошибка для линейной регрессии: 63,90493104709001

Подгонка модели к регрессии лассо:

from sklearn.linear_model import Lasso
lasso = Lasso()
lasso.fit(x_train, y_train)
y_pred_lasso = lasso.predict(x_test)
mse = mean_squared_error(y_test, y_pred_lasso)
print(mse)
lasso.score(X_train, y_train)

Среднеквадратическая ошибка для регрессии Лассо: 67,04829587817319

оценка лассо = 0,8001691761982569, наблюдается значительное снижение коэффициента

Подгонка модели к хребетной регрессии:

from sklearn.linear_model import Ridge
ridge = Ridge()
ridge.fit(x_train, y_train)
y_pred_ridge = ridge.predict(x_test)
mse = mean_squared_error(y_test, y_pred_ridge)
print(mse)

Среднеквадратическая ошибка для гребневой регрессии: 66,07258621837418

Ридж против Лассо

  • Лассо может установить некоторые коэффициенты равными нулю, тем самым выполняя выбор переменных, в то время как гребневая регрессия не может.
  • Оба метода позволяют использовать коррелированные предикторы, но решают проблему мультиколлинеарности по-разному:
  • В гребневой регрессии коэффициенты коррелированных предикторов аналогичны;
  • В лассо один из коррелированных предикторов имеет больший коэффициент, а остальные (почти) равны нулю.
  • Лассо имеет тенденцию преуспевать, если имеется небольшое количество значимых параметров, а остальные близки к нулю (следовательно, когда на ответ действительно влияют только несколько предикторов).
  • Ridge хорошо работает, если есть много больших параметров примерно с одинаковым значением (следовательно, когда большинство предикторов влияют на ответ).
  • Однако на практике мы не знаем истинных значений параметров, поэтому предыдущие два пункта носят несколько теоретический характер. Просто запустите перекрестную проверку, чтобы выбрать более подходящую модель для конкретного случая.

Эластичная сеть

Эластичная сеть впервые появилась в результате критики лассо, выбор переменных которого может быть слишком зависимым от данных и, следовательно, нестабильным. Решение состоит в том, чтобы объединить штрафы регрессии гребня и лассо, чтобы получить лучшее из обоих миров. Elastic Net стремится минимизировать следующую функцию потерь:

где α — параметр смешивания между гребнем (α = 0) и лассо (α = 1).

Теперь нужно настроить два параметра: λ и α. Пакет glmnet позволяет настраивать λ с помощью перекрестной проверки для фиксированного α, но не поддерживает α -tuning, поэтому для этой работы мы обратимся к каретке.

Заключение

  • Если ваша линейная модель содержит много переменных-предикторов или если эти переменные коррелированы, стандартные оценки параметров МНК имеют большую дисперсию, что делает модель ненадежной.
  • Чтобы противостоять этому, вы можете использовать регуляризацию — метод, позволяющий уменьшить эту дисперсию за счет внесения некоторого смещения. Нахождение хорошего компромисса смещения и дисперсии позволяет минимизировать общую ошибку модели.
  • Существует три популярных метода регуляризации, каждый из которых направлен на уменьшение размера коэффициентов:
  • Ридж-регрессия, которая штрафует сумму квадратов коэффициентов (штраф L2).
  • Лассо-регрессия, которая штрафует сумму абсолютных значений коэффициентов (штраф L1).
  • Эластичная сетка, выпуклая комбинация Ridge и Lasso.
  • Размер соответствующих штрафных условий можно настроить с помощью перекрестной проверки, чтобы найти наилучшее соответствие модели.