Нежное введение в алгоритм и его код.
Это одна из первых моделей, с которой мы знакомимся, когда начинаем свой путь к машинному обучению. Это очень простая, но элегантная модель для прогнозирования непрерывной целевой переменной. Прежде чем перейти к алгоритму, давайте попробуем понять, что означает термин регрессия? Это статистический метод для установления связи между независимыми переменными (входными данными) и зависимой переменной (целью). Он широко используется при прогнозировании и проверке гипотез.
Линейная регрессия - это метод моделирования линейной связи между зависимыми и независимыми переменными. Он предполагает линейную связь между входными и целевыми переменными.
Мы обсудим два типа регрессии:
- Простая линейная регрессия.
- Множественная линейная регрессия.
В простой линейной регрессии мы пытаемся установить связь между одним входом и целевой переменной.
В множественной линейной регрессии мы пытаемся установить связь между множеством входных данных и целевой переменной.
В линейной регрессии мы пытаемся провести линию через все точки данных, которые пытаются уменьшить остаточную сумму квадратов, а в множестве мы пытаемся подогнать гиперплоскость таким образом, чтобы она минимизировала остаточную сумму квадратов. Уравнение линейной регрессии:
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.
Шаги, которые мы будем выполнять при написании кода:
- Импортируйте необходимые библиотеки и данные
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, в котором есть необходимые файлы для начала работы.
Куда идти дальше?
Следующая важная вещь, которую нужно узнать о линейных моделях, - это их предположения. Я подробно остановился на Предположениях в следующем блоге. Я настоятельно рекомендую пройти через это. Важно проверить эти предположения, чтобы построить надежную линейную модель.
Надеюсь, вам понравилось объяснение, я постарался, чтобы все было проще. 😋