Линейная регрессия: как стать магом предсказаний с помощью статистических методов

от автора

Многие из нас мечтали бы заглянуть в будущее — ведь это по-настоящему полезный навык. А что, если я скажу, что при помощи математики можно приблизиться к этой мечте? Да, с некоторыми оговорками, но в этой статье мы попробуем почувствовать себя настоящим Докторам Стрэнджам и предсказать какую кассу соберет фильм при определенном бюджете.

Сегодня мы простыми словами разберёмся, что такое линейная регрессия и напишем код на Python, который демонстрирует работу линейной регрессии.

Интуиция

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

Другими словами, для предсказания часто достаточно понять, как одна величина зависит от другой. А что, если бы мы могли отобразить визуально эту зависимость? Именно этим и занимается линейная регрессия.

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

Постараюсь без сложных формулировок, честно.

Линейная регрессия — это статистический метод, который часто применяется в data science и статистике. Она позволяет визуально отобразить зависимость между данными для дальнейшего анализа и прогнозов на будущее при помощи линейной зависимости(на графике — это прямая). Говоря более неформально, то линейная регрессия, по сути, это правильная подгонка прямой под данные.

Особо внимательные уловили связь с линейной функцией, уж многие определения на нее походят и вы правы, так как формула линейной регрессии выглядит так:

y = mx+b

где:

  • y — предсказание

  • m — коэффициент

  • b — свободный член

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

Механизм работы линейной регрессии

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

Вы решаете построить график:

  • По оси X откладываете улицы. Чем ближе улица к центру, тем левее она находится.

  • По оси Y располагаете месячную выручку.

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

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

Линейная регрессия на Python

Перед тем, как приступить к делу, я оставлю ссылку на GitHub, с которого брал таблицу.

Сейчас мы будем обучать линейную регрессию на CSV-таблице, которая содержит данные о фильмах, а именно, бюджет и итоговую кассу. Ну что же, приступим!

import pandas as pd from pandas import DataFrame import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression

Импортируем библиотеки для работы с файлами, графиками и линейной регрессией соответственно.

data = pd.read_csv('cost_revenue_clean.csv')

Читаем данные с CSV-файла.

x = DataFrame(data, columns=['production_budget_usd']) y = DataFrame(data, columns=['worldwide_gross_usd'])

Извлекаем данные из таблиц бюджета и кассы и сохраняем их в x и y соответственно.

plt.figure(figsize=(8, 6)) plt.scatter(x, y, alpha=0.5, label="Данные")  plt.plot(x, m * X + b, color='red', label="Линейная регрессия")   plt.xlabel("Бюджет фильма (USD)") plt.ylabel("Мировые сборы (USD)") plt.title("Линейная регрессия: бюджет и сборы") plt.legend() plt.show()

Говоря вкратце, настраиваем визуализацию графика.

Такая красота у нас получилась, но давайте сделаем предсказание.

Заключение

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


ссылка на оригинал статьи https://habr.com/ru/articles/897028/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *