Линейная регрессия предполагает линейную связь между входной переменной (x) и выходной переменной (y).

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

Линейная регрессия — один из наиболее часто используемых алгоритмов машинного обучения с учителем на основе регрессии. Он предполагает линейную зависимость между входными переменными (x) и выходной переменной (y).

Оглавление:

  1. Введение
  2. Типы линейной регрессии
  3. Понимание простой линейной регрессии
  4. Работа линейной регрессии
  5. Алгоритм градиентного спуска
  6. Корреляция и причинность
  7. Метрики оценки в регрессии
  8. Простая линейная регрессия в Python
  9. Предположения и подготовка в линейной регрессии


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

Что такое регрессия? Существует два типа алгоритмов контролируемого обучения. Одним из них является классификация, которая помогает разделить данные на разные классы, а другим — регрессия, которая помогает в подгонке данных (непрерывных значений).

Проще говоря, линейная регрессия предполагает, что целевая переменная (y) может быть рассчитана как линейная комбинация входных переменных (x1,x2,x3,x4…).

y → Зависимая/целевая переменная, которую мы пытаемся предсказать

x → независимая/входная переменная, которую мы используем для прогнозирования y

a0 → Термин смещения/пересечение по оси Y

a1, a2, a3, …. an → Коэффициенты регрессии / Коэффициенты масштабирования

В зависимости от количества независимых переменных линейную регрессию можно разделить на 2 типа — простую и множественную линейную регрессию.

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

В простой линейной регрессии есть только одна независимая переменная (х).

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

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

В этой статье речь пойдет в основном о простой линейной регрессии.

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

a0 → коэффициент пересечения/смещения. Это значение y, когда x=0

a1 → Это значение y увеличивается или уменьшается на каждую единицу изменения значения в x1

Таким образом, наша цель в машинном обучении — найти переменные a0 и a1, используя заданные значения y1 и x1, чтобы значение ошибки было минимальным.

Но как узнать, какое значение a0 и a1 является лучшим? Чтобы решить это, нам нужна метрика ошибок. Разве мы не можем просто использовать сумму разницы между исходным и предсказанным значением? Да, это хорошо. Но в этом случае отрицательные и положительные ошибки могут компенсироваться. Например, рассмотрим 2 истинных значения — 100,50 и предсказанное значение — 50,100, в этом случае ошибка будет равна нулю.

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

Работа линейной регрессии:

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

Алгоритм градиентного спуска:

  • Начните со случайного значения параметров модели. В большинстве случаев в качестве отправной точки используется 0. То есть оба значения a0 и a1 инициализируются как 0.
  • Затем найдите функцию значения ошибки/стоимости с этими коэффициентами.
  • Вычислите производную функции стоимости в этой точке, т.е. наклон точки. Это даст нам направление, в котором нам нужно двигаться.

  • Инициализируйте скорость обучения в соответствии с тем, насколько быстро/медленно вам нужно достичь локального минимума. Это гиперпараметр, и его нужно настроить.
  • Более низкая скорость обучения означает, что для достижения локального минимума потребуется больше времени, а более высокая скорость обучения означает, что он будет слишком часто пропускать локальный минимум.

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

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

Попробуйте посмотреть на этот график Google, чтобы понять, как работает скорость обучения — https://developers.google.com/machine-learning/crash-course/fitter/graph.

Корреляция и причинность:

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

Положительнаяположительная корреляция:переменная 2 увеличивается с увеличением значения переменной Nотрицательная корреляция: переменная 2 уменьшается с увеличением значения переменной Нет корреляции: когда изменение одной переменной не влечет за собой изменение другой переменной

Причинность означает, что одно событие вызывает другое событие для другого. Хотя причинность и корреляция могут существовать одновременно, корреляция не подразумевает причинно-следственной связи. Причинно-следственная связь явно применяется к случаям, когда действие А вызывает результат Б. С другой стороны, корреляция — это просто взаимосвязь. Действие А связано с Действием Б, но одно событие не обязательно вызывает другое событие. .

Метрики оценки в регрессии:

Средняя абсолютная ошибка:

Среднеквадратическая ошибка:

Среднеквадратичная ошибка:

R2-оценка:

RSS — остаточная сумма квадратов. RSS рассчитывается как сумма квадратов разностей между исходными и прогнозируемыми значениями (остатками).

TSS —общая сумма квадратов. TSS рассчитывается как сумма квадратов разностей между исходным значением и средним значением.

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

Я собираюсь использовать рекламный набор данных от Kaggle для линейной регрессии в Python.

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



Как видите, набор данных содержит 4 столбца. Используя первые 3 столбца (телевидение, радио и газета), мы попытаемся предсказать столбец «Продажи».

Во-первых, давайте попробуем провести простую линейную регрессию только с одной переменной x — TV. И давайте разделим набор данных на обучающий и тестовый набор. Я буду использовать 80% набора данных для обучения и попытаюсь предсказать остальные 20%.

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

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

Это кажется достаточно хорошим. Но насколько хорошо? Как квантовать эту модель? Вот когда приходит функция ошибки.

Предположения и подготовка в линейной регрессии:

Масштабирование функций. Набор данных может содержать более 1 столбца, и в этом случае, если диапазон одного из столбцов составляет 100–1000, а другого столбца — 0–1 . Тогда линейная регрессия может дать больший вес первому столбцу, чем другому столбцу, из-за его высокого значения. Вот почему хорошо всегда масштабировать данные перед подбором модели. Общие методы масштабирования признаков — нормализация, масштабирование по минимуму и максимуму.

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

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

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

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



Использованная литература:

  1. Линейная регрессия — Википедия
  2. Набор данных рекламы продаж Kaggle
  3. Линейная регрессия для машинного обучения
  4. Линейная регрессия — четкое объяснение StatQuest