Нежное введение в алгоритм и его код.

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

Линейная регрессия - это метод моделирования линейной связи между зависимыми и независимыми переменными. Он предполагает линейную связь между входными и целевыми переменными.

Мы обсудим два типа регрессии:

  1. Простая линейная регрессия.
  2. Множественная линейная регрессия.

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

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

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

y = β0 + β1.X1 # Simple linear regression
y = β0 + β1.X1 + β2.X2 + ... + βn.Xn # Multiple linear regression

β0 - значение точки пересечения, а от β1 до βn - значения наклона. Перехват - это значение целевой переменной при x = 0, если все независимые переменные равны 0, то значение зависимого значения равно β0. И то, как мы интерпретируем наклон, заключается в том, насколько изменится зависимая переменная при изменении единицы измерения независимой переменной.

Лучшая линия.

Находится наиболее подходящая линия, при которой остаточная сумма квадратов минимальна. RSS (Residual Sum of Square) - это квадрат остатка каждого наблюдения.

Выбираем строку, которая дает наименьшее значение RSS. Этот процесс называется методом наименьших квадратов. Оптимизируем значение пересечения и уклонов с помощью метода Градиентный спуск. Идея градиентного спуска состоит в том, чтобы двигаться в направлении, противоположном градиенту, пока мы не достигнем точки с наименьшим значением ошибки. Мы рассмотрим это подробно в некоторых последующих статьях. А пока я дал ссылку на отличный видео от Joshua Starmer.

Наша модель работает хорошо?

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

Оценка R2 или коэффициент детерминации - это показатель, который объясняет, какая часть данной вариации данных объясняется моделью. Это говорит о точности посадки модели. Чем выше балл, тем лучше. В идеале диапазон для оценки R2 составляет от 0 до 1. Но если производительность модели даже хуже, чем у средней модели, тогда значение может опуститься ниже 0, это может быть связано с некоторыми проблемами с подгонкой модели. Оценка R2 - это соотношение RSS и TSS (Общая сумма квадратов). Здесь RSS означает разницу между фактическим и прогнозируемым значением. TSS - это базовая модель, которая показывает разницу между фактическим и средним значением целевой переменной. Итак, мы сравниваем остаток в квадрате суммы с базовой моделью.

Давайте посмотрим на этот алгоритм в действии

Для реализации кода мы будем использовать язык программирования Python.

Шаги, которые мы будем выполнять при написании кода:

  1. Импортируйте необходимые библиотеки и данные

2. Подготовьте данные

3. Разделите данные и выполните масштабирование.

4. Обучайте, прогнозируйте и оценивайте метод OLS Statsmodel.

5. Обучайте, прогнозируйте и оценивайте метод линейной регрессии sklearn.

6. Интерпретация модели

Окончательное уравнение для приведенной выше линейной регрессии:

3295125.11*area + 506109.44*bedrooms + 1874073.79*bathrooms + 1385770.25*stories + 421368.74*mainroad + 253819.75*guestroom + 314233.13*basement + 1021073.02*hotwaterheating + 794828.15*airconditioning + 833078.62*parking + 617166.58*prefarea + -47533.58*furnishingstatus_semi-furnished + -431147.75*furnishingstatus_unfurnished + 2105949.005

Вывод

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

Куда идти дальше?

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

Надеюсь, вам понравилось объяснение, я постарался, чтобы все было проще. 😋