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

Что такое линейная регрессия?

Линейная регрессия пытается смоделировать взаимосвязь между двумя переменными, подгоняя линейное уравнение к наблюдаемым данным. Одна переменная считается независимой переменной или независимой переменной, а другая считается зависимой переменной - Источник: Йель. edu

Приложения и подходы линейной регрессии

Бизнес-приложения

Линейная регрессия используется для решения широкого круга задач бизнес-прогнозирования:

  1. Прогноз акций
  2. Прогнозируйте будущие цены / затраты
  3. Прогнозируйте будущий доход
  4. Сравнение производительности новых продуктов

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

  1. Легкость
  2. Интерпретируемость
  3. Масштабируемость
  4. Развертывается и хорошо работает в сетевых настройках

Подходы машинного обучения к линейной регрессии

  1. Простая и множественная линейная регрессия
  2. Полиномиальная регрессия
  3. Регрессия гребня и регрессия лассо (обновляется до линейной регрессии)
  4. Регрессия деревьев решений
  5. Поддержка векторной регрессии (SVR)

Линейная регрессия в терминах непрофессионала

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

Давайте посмотрим на следующий классический пример - Источник.

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

Линейная регрессия создает уравнение, в которое вы вводите свои заданные числа (X), а оно выводит целевую переменную, которую вы хотите узнать (Y).

В этом случае мы будем использовать набор данных, содержащий исторические записи о покупках домов в форме («количество спален», «продажная цена»):

Давайте теперь визуализируем те же данные

Глядя на диаграмму рассеяния, кажется, что есть тенденция: чем больше в доме спален, тем выше его продажная цена (что, если честно, неудивительно).

Теперь предположим, что мы обучили модель линейной регрессии, чтобы получить уравнение в форме:

Цена продажи = 77 143 * (количество спален) - 74 286

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

Для конкретного примера выше:

Ваша продажная цена = 77 143 * 2 спальни - 74 286 = 80 000

Другими словами, вы можете продать свой дом с 2 спальнями примерно за 80 000 долларов. Но линейная регрессия делает больше, чем просто это. Мы также можем визуализировать это графически, чтобы увидеть, какой будет цена для домов с другим количеством спален -

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

Математическая интерпретация

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

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

После обучения модель принимает форму уравнения линейной регрессии этого типа:

Термины в этом уравнении -

  • y - выходная переменная. Она также называется целевой переменной в машинном обучении или зависимой переменной в статистическом моделировании. Он представляет собой постоянную ценность, которую мы пытаемся предсказать.
  • x - входная переменная. В машинном обучении x называется функцией, а в статистике - независимой переменной. Он представляет информацию, предоставленную нам в любой момент времени.
  • w0 - это член смещения или точка пересечения оси y.
  • w1 - коэффициент регрессии или масштабный коэффициент. В классической статистике это эквивалент наклона наиболее подходящей прямой, полученной после подгонки модели линейной регрессии.
  • wi обычно называются весами.

Цель регрессионного анализа (моделирования) - найти значения неизвестных параметров уравнения; то есть найти значения весов w0 и w1

Множественная линейная регрессия

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

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

Где xi - i-я функция с собственным весом wi.

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

Несмотря на свои различия, и простая, и множественная регрессионные модели являются линейными моделями - они принимают форму линейного уравнения. Это называется линейным предположением.

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

Обучение модели LR

Мы обучаем алгоритм линейной регрессии с помощью метода под названием Обычные наименьшие квадраты - OLS (или просто наименьших квадратов). Цель обучения - найти веса wi в линейном уравнении y = wo + w1x.

  1. Инициализация случайного веса. На практике сначала значения w0 и w1 неизвестны. Цель процедуры - найти подходящие значения для этих параметров модели. Чтобы начать процесс, мы устанавливаем значения весов случайным образом или просто инициализируем 0.

Существуют и другие математические обоснования, такие как Инициализация Xavier и т. Д.

2. Введите инициализированные веса в линейное уравнение и сгенерируйте прогноз для каждой точки наблюдения.

3. Вычислите Остаточную сумму квадратов (RSS). Остатки или условия ошибки - это разница между каждым фактическим результатом и прогнозируемым результатом.

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

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

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

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

Таким образом мы получаем наилучшие возможные значения весов.

Функция стоимости

В случае линейной регрессии функция стоимости такая же, как остаточная сумма ошибок. Алгоритм решает проблему минимизации и достигается с помощью градиентного спуска.

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

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

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

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

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

Оценка нашей модели

Как мы оцениваем точность нашей модели?

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

Для оценки степени соответствия существуют различные показатели:

Среднеквадратичная ошибка (MSE)

MSE вычисляется как RSS, деленное на общее количество точек данных, то есть общее количество наблюдений или примеров в нашем заданном наборе данных. MSE сообщает нам, каков средний RSS на точку данных.

Среднеквадратичная ошибка (RMSE)

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

Оценка R2, R-квадрат или R2

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

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

Улучшение нашей модели

Есть несколько способов улучшить вашу модель линейной регрессии.

Предварительная обработка данных

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

Обязательно:

  1. Удалите выбросы: выбросы в количественном ответе y непропорционально искажают наклон линии. Удалите их, чтобы леска лучше сидела.
  2. Удаление мультиколлинеарности. Создайте матрицу корреляции для всех ваших функций, чтобы проверить, какие пары функций страдают от высокой корреляции. Удалите эти функции, чтобы оставить только одну.
  3. Утверждение нормального распределения. В модели предполагается, что независимые переменные подчиняются распределению Гаусса. Преобразуйте свои переменные с помощью преобразования журнала, если они не распределены нормально.
  4. Утверждение линейного предположения:. Если ваши независимые переменные не имеют линейной связи с вашей переменной-предиктором, преобразуйте их в журнал, чтобы преобразовать полиномиальные отношения в линейные.

Подробнее о Распределении вероятностей см. - https://medium.com/datadriveninvestor/mat Mathematics-for-machine-learning-part-5-8df72392ec10

Масштабирование функций

Возможности могут быть разных порядков. Функции разных масштабов конвертируются медленнее (или не конвертируются вообще) с градиентным спуском.

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

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

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

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

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

  1. Регрессия Lasso L1 - использует штрафной член для удаления переменных-предикторов, которые мало влияют на общую производительность модели.
  2. Регрессия уровня L2 - использует штрафной член, чтобы снизить влияние переменных-предикторов (но не удаляет особенности).

Задачи Kaggle для начинающих

  1. Прогнозирование заработной платы на основе многолетнего опыта работы
  2. Построить экономический прогноз импорта продовольствия в США на основе исторических данных
  3. Сравните, как разные рекламные каналы влияют на общий объем продаж
  4. Прогнозируйте количество голосов, которые получит сообщение в социальной сети

Дополнительные ресурсы и ссылки







Для линейной регрессии: реализация с нуля, проверьте мой репозиторий GitHub -



(Используемый набор данных - https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data )

Дополнительная статья—