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

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

Почему линейная регрессия относится как к статистике, так и к машинному обучению.

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

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

Разве линейная регрессия происходит не от статистики?


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

Разве это не техника из статистики?

Машинное обучение, в частности, область прогнозного моделирования в первую очередь связана с минимизацией ошибки модели или созданием наиболее точных прогнозов, за счет объяснимости. При применении машинного обучения мы будем заимствовать, повторно использовать и "воровать" алгоритмы из разных областей, включая статистику, и использовать их в этих целях.

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

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

Многоликость линейной регрессии


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

Алгоритм существует более 200 лет уже был изучен со всех возможных точек зрения и часто каждый новых угол имеет предназначение и другое название.

Линейная регрессия — это линейная модель, которая предполагает линейную связь между входными переменными (Xi) и единственной переменной на вывода (Y). Более конкретно, что у может быть рассчитана через линейную комбинации входных переменных (X) (или У = B1*X1 + B2*X2 + ..Bn*Xn).

При наличии одной переменной ввода (x) метод называется простой линейной регрессией. Когда существует несколько переменных входных данных, литература из статистики часто называет метод множественной линейной регрессией.

Различные методы могут быть использованы для подготовки или обучения линейной регрессии. Наиболее распространенным из которых называется Метод наименьших квадратов (или сокращенно МНК, по-английски это Ordinary Least Squares или OLS).

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

Представление модели линейной регрессии


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

Представление - это линейное уравнение, объединяющее определенный набор входных значений (X) решений, к которому является прогнозируемый вывод для этого набора входных значений (y). Таким образом, как значения входных данных (x), так и выходное значение являются числовыми.

Линейное уравнение присваивает масштабный коэффициент (по-английски "scale factor") к каждому входному значению X. Масштабный коэффициент представлен греческой буквой Beta (B). Добавлен также один дополнительный коэффициент, добавляющую дополнительную степень свободы (например, движение вверх и вниз по двумерном участку) и часто называют коэффициентом перехвата или смещения (по-английски "bias coefficient").

Наиболее простая задача регрессии когда на вход подается одна переменная X и есть одно выходящее значение Y. Форма подобной модели будет:

Y = B0 + B1 * X

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

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

Когда конкретный элемент коэффициент Beta становится нулевым, он эффективно удаляет влияние входной переменной на модель и, следовательно, влияния на прогноз модели (0 * Xi = 0). Это становится актуальным, если вы применяете методы регуляризации (о них мы расскажем отдельно), которые изменяют алгоритм обучения, чтобы уменьшить сложность моделей регрессии, оказывая давление на абсолютный размер коэффициентов, приводя некоторые из них к нулю.

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

Методы линейной регрессии


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

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

Есть еще много методов, потому что модель линейной регрессии так хорошо изучены. Важно обратить внимание что на метод наименьших квадратов, потому что это наиболее распространенный метод, используемый в целом в индустрии для задач оптимизации. Также обратите внимание метод Градиентного спуска (по-английски Gradient descent), как наиболее распространенный метод применяемый в различных классах задач машинного обучения.

Простая линейная регрессия


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

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

Это весело, как упражнение полезно однажды проделать в Excel, но не очень полезно на практике.

Метод Наименьших Квадратов


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

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

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

Руками подобные вычисления уже давно никто не делает (кроме как для собственного понимания или в рамках домашнего задания в школе или ВУЗе). Вы просто вызываете процедуру из библиотеки линейной алгебры. Эта процедура умеет быстро вычислять подобные задачи.

Градиентный спуск


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

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

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

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

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

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


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

Два популярных примера процедуры регуляризации линейной регрессии:

  • Лассо регрессия (Lasso Regression): метод наименьших квадратов модифицируются, чтобы также свести к минимуму абсолютную сумму коэффициентов (так называемая регуляризация L1).
  • Регрессия хребта (Ridge Regression): метод наименьших квадратов модифицируются, чтобы свести к минимуму квадрат абсолютной суммы коэффициентов (так называемая регуляризация L2).

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

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

Прогнозирование с помощью с линейной регрессии


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

Рассмотрим конкретный пример. Представьте, что мы прогнозируем вес человека (y) в зависимости от высоты человека (x). Наше представление модели линейной регрессии для этой проблемы будет:

Y = B0 +  B1 * X1

Или

вес человека = B0 + B1 * высота человека

Где B0 является коэффициентом смещения, а B1 - коэффициентом для столбца высоты человека. Мы используем технику обучения, чтобы найти хороший набор значений коэффициентов. После того, как найдено, мы можем подключить различные значения высоты, чтобы предсказать вес.

Например, позволяет использовать B0 = 0,1 и B1  = 0,5. Давайте подставим их и рассчитаем вес (в килограммах) для человека с ростом 182 сантиметра.

вес человека = 0,1 +  0,5 * 182

вес человека  = 91.1

Вы можете видеть, что вышеупомянутое уравнение может быть отображена как линия в двух измерениях. Коэффициент B0 является нашей отправной точкой независимо от того, какой рост у человека. Мы можем пробежать через различные высоту человека от 100 до 200 сантиметров подставив в уравнению и получить значения веса, создавая нашу линию.

Пример высоты против веса линейной регрессии

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

Подготовка данных к линейной регрессии


Линейная регрессия изучается уже давно, и есть много литературы о том, как ваши данные должны быть структурированы, чтобы наилучшим образом использовать модель МНК или Градиентного спуска.

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

Используя эти эвристики и посмотреть, что лучше всего работает для вашей проблемы:

  • Линейные предпосылки. Линейная регрессия предполагает, что связь между входными и выходным данными является линейной. Линейная регрессия не поддерживает ничего другого. Это может быть очевидно, но это хорошо, чтобы помнить, когда у вас есть много атрибутов. Возможно, потребуется преобразовать данные, чтобы сделать отношения между ними линейными (например, логарифмическое преобразование для экспоненциальной связи).
  • Удалите шум. Линейная регрессия предполагает, что переменные на выходе и вывода не являются шумными. Рассмотрите возможность использования операций по очистке данных, которые позволяют лучше разоблачать и прояснять сигнал в данных. Это наиболее важно для переменной вывода, и, по возможности, необходимо удалить выбросы в переменной вывода (y).
  • Удалите коллинеарность. Линейная регрессия будет чрезмерно соответствовать вашим данным, когда у вас есть сильно коррелированные входные переменные. Рассмотрим расчет парных корреляций для входных данных и удаление наиболее коррелированных данных.
  • Гауcсово распределение. Линейная регрессия сделает более надежные прогнозы, если входные и выходные переменные имеют гауссово распределение. Вы можете получить некоторую выгоду с помощью преобразований (например, log или BoxCox) на переменных, чтобы сделать их распределение более гауссово.
  • Нормализованные входные данные: Линейная регрессия часто делает более надежные прогнозы, если отмасштабировать входные переменные с помощью стандартизации или нормализации.