Линейная регрессия

y = w1.x1 + w2.x2 + ……. + wn.xn

где x1,x2,….,xn — входные признаки, w1,w2,….,wn — соответствующие веса, а y — прогнозируемый результат модели. Линейная регрессия — это не что иное, как поиск оптимальных значений весов, чтобы модель могла хорошо работать с невидимыми точками данных в реальном мире. Чтобы узнать больше о линейной регрессии, ознакомьтесь с другими медианными статьями, потому что эта статья посвящена методам оптимизации и регуляризации с использованием библиотеки sklearn.

Оптимизация

Оптимизация — это не что иное, как поиск правильных значений весов. Как правило, это можно сделать двумя способами: один — с помощью нормального уравнения, а другой — с помощью метода градиентного спуска. В методе градиентного спуска есть еще 3 типа, такие как градиентный спуск, стохастический градиентный спуск и мини-пакетный градиентный спуск.

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

Регуляризация — это метод, используемый для решения проблем переобучения в модели. Существует два основных типа регуляризации L1 (лассо) и L2 (гребень).

правильно применяя эти два метода, мы можем заметно уменьшить ошибку модели.

Вышеупомянутое изображение показывает иерархию различных методов, доступных в библиотеке sklearn, необходимых для выполнения линейной регрессии.

когда количество точек данных составляет 10 000 или более, хорошим выбором будет метод стохастического градиентного спуска (SGDRegressor), в противном случае метод нормального уравнения (LinearRegression) отлично работает для оптимизации, т. е. для поиска правильных значений параметров w1, w2,…., wn.

Линейная регрессия с использованием метода нормального уравнения

1. нет регуляризации

sklearn.linear_regression.LinearRegression()

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

sklearn.linear_regression.Лассо()

3. l2 регуляризация

sklearn.linear_regression.Ridge()

Метод ElasticNet представляет собой модель, обученную с регуляризацией коэффициентов l1, l2.

sklearn.linear_regression.ElasticNet()

Линейная регрессия с использованием метода стохастического градиентного спуска

Параметр штрафа определяет используемую регуляризацию. Он принимает такие значения, как l1, l2, elasticnet и по умолчанию использует регуляризацию l2. Например,

sklearn.linear_regression.SGDRegressor() эквивалентен sklearn.linear_regression.SDGRegressor(penalty=’l2’)

Я надеюсь, что эта статья дала вам структурное представление о том, как использовать методы библиотеки sklearn для различных методов регуляризации и оптимизации.