Линейная регрессия — что это такое, модели в машинном обучении, формулы и примеры
Содержание
Чтобы заглянуть в будущее, не нужен хрустальный шар гадалки. У нас есть инструмент, который позволяет предсказать, например, сколько вы заработаете через пять лет, исходя вашего опыта на данный момент. Это не магия — это линейная регрессия со своими графиками и параметрами. В статье мы раскроем, как простая модель помогает прогнозировать сложные процессы и находить закономерности в данных.
Что это такое
Представьте, что вы работаете в магазине мороженого и нужно понять, как температура на улице влияет на количество проданных порций. Есть данные, сколько порций реализовали в разные дни при разных температурах. А вы хотите предсказать, сколько будет продано в следующую субботу, когда градусник покажет +28°C.
Логично, что чем жарче, тем лучше идут продажи. С помощью машинного обучения вы создаете модель, которая построит некую «линию» и покажет зависимость количества покупок от погоды. Так вы сможете заранее планировать запасы мороженого в жаркие дни, понимая, что при +35°C нужно больше товара, чем при 20°C. Это поможет эффективнее управлять бизнесом, избегая дефицита или излишков.
В данном примере вы сделали прогноз на основе метода статистики, который предполагает, что изменения одной переменной приводят к пропорциональным изменениям в другой. Это линейная регрессия (Linear Regression) — модель машинного обучения, где мы пытаемся предсказать какое-то значение, например, цену или рост, на основе другого значения.
Основные понятия и термины
Зависимая (целевая) переменная
То, что вы хотите предсказать. Например, мы пытаемся предугадать цену квартиры в зависимости от других факторов, таких как площадь, район, этаж.
Независимая переменная (Признак)
Параметры, влияющие на целевое значение. В примере выше это как раз площадь, этаж, район — всё, что поможет модели делать прогнозы.
Коэффициенты
Числовые значения, которые показывают, насколько сильно каждый из факторов влияет на зависимый параметр. Например, квартиры в престижных районах дороже, а на первых этажах дешевле средней рыночной цены.
Уравнение линии регрессии
Модель ищет прямую, которая связывает два параметра. Выглядит это так:
y=mx+b
- y — целевая переменная (например, цена квартиры),
- x — независимая переменная (например, ее площадь),
- m — коэффициент наклона прямой (показывает, насколько изменяется цена, если площадь увеличится на 1 квадратный метр),
- b — сдвиг прямой (что происходит, когда x = 0, например, базовая стоимость без учета площади).
Ошибки
Разница между тем, что было предсказано, и тем, что реально произошло. Важно понимать, где именно ошибается модель, чтобы её корректировать. Например, добавить больше данных или использовать другие показатели.
Для чего нужна линейная регрессия
Прогнозировать результат
Единственный способ заглянуть в будущее без магии, только на основе данных. Например, предсказать время, которое потребуется человеку, чтобы добраться до работы, исходя из различных факторов, таких как погода, плотность движения и время суток.
Анализировать зависимости
Понять, как изменение одной переменной влияет на другую. Самый простой пример: чем быстрее едет автомобиль, тем меньше время в пути.
Выявить тренды
Например, если вы хотите понять, как меняется температура в течение года, линия регрессии это покажет и представит общий тренд изменения погоды по месяцам.
Оптимизировать процессы
Вы можете выяснить, какие факторы имеют максимальный эффект. К примеру, проанализировать сезонность, чтобы увеличить бюджет рекламы в определенный период и повысить продажи в интернет-магазине.
Как работает регрессионная модель
Допустим, вы HR, которому нужно предсказать уровень зарплаты на основе стажа работы. На каждого сотрудника есть данные. Например, у некоторых людей стаж работы 2 года, а зарплата — 30 000 ₽; для других — стаж 10 лет, а зарплата 80 000 ₽.
Формула коэффициентов линейного уравнения регрессии — это важный элемент для построения схемы предсказания. Мы ее видели выше:
f(y)=mx+b
где b — сдвиг прямой вверх или вниз, а m — наклон. Если мы меняем эти параметры, меняется и линия на графике.
Чтобы оценить, насколько хорошо алгоритм предсказывает зарплату, нам нужно вычислить ошибку для каждого предсказания. Для этого часто используют функцию потерь (Mean Squared Error, MSE). Она вычисляется как среднее квадратичных отклонений предсказанных значений от реальных.
Расчеты в Python
Этот язык программирования де-факто стал стандартом для задач Machine Learning благодаря своей простоте, гибкости и наличию мощных библиотек:
- Pandas и NumPy позволяют эффективно обрабатывать и манипулировать данными, чтобы подготовить их к анализу.
- Matplotlib поможет наглядно представить результаты.
- TensorFlow, scikit-learn предложат готовые инструменты для создания регрессионной прямой.
Чтобы построить график, который будет отражать доход человека на основе его опыта работы, потребуется CSV-файл с данными о сотрудниках, например:
- years_of_experience: Количество лет опыта работы.
- annual_income: Годовой доход сотрудника.
Все сведения нужно разделить на целевое значение (зарплата) и признаки (стаж). Затем информацию разложим на обучающую и тестовую выборки. А после обучения и оценки модели визуализируем результаты. Если в реальном проекте на каком-то этапе возникают трудности, найти эффективное решение поможет YouTube. Например, вот полезное видео, как работать с Pandas.
Наклон прямой и её положение относительно осей координат позволяет предсказать, сколько получает сотрудник в зависимости от того, как долго работает в компании. Каждая точка на графике будет представлять отдельного человека.
Множественная линейная регрессия
Это метод machine learning, который помогает спрогнозировать значение какой-либо переменной на основе нескольких других переменных одновременно. Например, понять, как на продажи влияет погода, реклама и дни недели. Это точнее, чем строить прогнозы только по одному параметру. В линейном уравнении коэффициент регрессии показывает, как сильно изменяется зависимый параметр (например, продажи) при изменении соответствующего независимого параметра(например, температуры или затрат на рекламу). Когда учитывают несколько факторов сразу, прогнозы получаются точнее.
Применение на практике
Рассмотрим пошаговый алгоритм на примере цен на квартиры.
Шаг 1: Собираем данные
Чтобы предсказать, сколько будет стоить квартира, отправимся на сайты объявлений или опросим знакомых. Узнаем, несколько признаков, которые коррелируют с ценой: площадь, количество комнат, этаж, местоположение.
Шаг 2: Разделяем информацию
Когда мы узнали всё, что нужно, разбиваем сведения на две выборки:
- обучающую (Training set), на которой модель будет учиться;
- тестовую (Test set), которая будут использоваться для проверки точности прогноза.
Обычно делят в пропорции 70% к 30%, соответственно. Важно, чтобы тестовые данные не использовались при обучении, иначе это исказит результат.
Шаг 3: Построим и обучим алгоритм
Для создания проекта линейной модели в машинном обучении используются инструменты библиотек Python. Так может выглядеть код в scikit-learn:
Если вы не понимаете, что написано на этой иллюстрации, не волнуйтесь. Загляните на бесплатный курс «Основы Python», чтобы получить базу для работы с этим языком. Программа подходит даже для новичков в программировании.
Шаг 4: Тестируем
Когда всё построено, проверяем, насколько хорошо график предсказывает цены на квартиры. Для этого используем тестовую выборку и вычисляем, насколько прогнозируемая стоимость близка к реальной. Чтобы оценить точность, можно использовать функцию потерь, т.е. метрику среднеквадратической ошибки (MSE), о которой мы писали выше.
Дополнительные шаги
Если что-то работает не так хорошо, как хотелось бы, это можно исправить двумя способами:
- Удалить факторы, которые не особо важны для прогнозирования. Например, цвет обоев или номер дома.
- Использовать другие модели. Например, полиномиальную регрессию или деревья решений.
После того как модель готова и проверена, ее можно использовать для предсказания цен на квартиры с известными характеристиками.
Подведем итоги
В этой статье мы рассмотрели, что такое, простыми словами, линейная регрессия в статистике и примеры ее в машинном обучении. Если вы захотите понять, как количество часов тренировок влияет на выносливость, именно этот метод поможет. Вы просто построите модель, которая предскажет, например, сколько километров человек сможет проехать на велосипеде, если тренируется 3 часа в неделю.
Вопрос-ответ
Какие ограничения у моделей?
Метод работает, когда переменные имеют прямую связь, как линия на графике. Но не подходит для сложных зависимостей. Например, если данные растут неравномерно по экспоненте. Или есть выбросы — очень высокие или низкие значения. Алгоритм также может ошибиться, если параметры сильно связаны между собой. Например, если рассматривать цену на дом, ориентируясь лишь на его площадь, модель не учтет такие важные вещи, как возраст строения или его расположение.
Как оценивается качество алгоритма?
Чаще всего используют следующие метрики:
- Средняя квадратичная ошибка — показывает, насколько в среднем предсказания отклоняются от реальных значений. Чем меньше MSE, тем лучше.
- R-квадрат (R²) — показывает, насколько хорошо модель объясняет изменения в данных. Если R² близко к 1, значит, что модель хорошо объясняет. Если близко к 0 — плохо.
- Средняя абсолютная ошибка (MAE) — помогает понять, насколько в среднем точны прогнозы.
В чем разница между парной и множественной линейной регрессией?
Первый тип — простой, когда мы пытаемся понять связь между одной переменной (например, количеством часов учебы) и другой (например, оценками). Но часто факторов гораздо больше. Мы пытаемся учесть несколько переменных одновременно, например, количество часов учебы и сна, и занятия спортом, чтобы предсказать, как это влияет на оценки. Можно сказать, что во втором типе вы пытаетесь уловить более сложные связи между параметрами и результатом.
Рекомендуем также
- 02.05.25
- 02.05.25