Линейная регрессия
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 для различных методов регуляризации и оптимизации.