Наука о данных — линейная регрессия


Нам не хватает одной важной переменной, влияющей на Calorie_Burnage, а именно на продолжительность тренировки.

Продолжительность в сочетании со значением Average_Pulse вместе более точно объясняют Calorium_Burnage.


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

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

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

В этом модуле мы рассмотрим следующие вопросы:

  • Можем ли мы заключить, что Average_Pulse и Duration связаны с Calorie_Burnage?
  • Можем ли мы использовать Average_Pulse и Duration для прогнозирования Calorie_Burnage?

Метод наименьших квадратов

Линейная регрессия использует метод наименьших квадратов.

Идея состоит в том, чтобы провести линию через все нанесенные на график точки данных. Линия расположена таким образом, чтобы минимизировать расстояние до всех точек данных.

Расстояние называется «остатками» или «ошибками».

Красные пунктирные линии представляют собой расстояние от точек данных до нарисованной математической функции.

Линейная регрессия — метод наименьших квадратов

Линейная регрессия с использованием одной независимой переменной

В этом примере мы попытаемся предсказать Calorie_Burnage с помощью Average_Pulse, используя линейную регрессию:

Пример

import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

x = full_health_data["Average_Pulse"]
y = full_health_data ["Calorie_Burnage"]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
 return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, slope * x + intercept)
plt.ylim(ymin=0, ymax=2000)
plt.xlim(xmin=0, xmax=200)
plt.xlabel("Average_Pulse")
plt.ylabel ("Calorie_Burnage")
plt.show()

Объяснение примера:

  • Импортируйте нужные вам модули: Pandas, matplotlib и Scipy.
  • Изолируйте Average_Pulse как x. Изолировать Calorie_burnage как y
  • Получите важные ключевые значения с помощью: наклона, перехвата, r, p, std_err = stats.linregress(x, y)
  • Создайте функцию, которая использует значения наклона и точки пересечения, чтобы вернуть новое значение. Это новое значение представляет, где на оси Y будет размещено соответствующее значение x.
  • Пропустите каждое значение массива x через функцию. Это приведет к созданию нового массива с новыми значениями для оси Y: mymodel = list(map(myfunc, x))
  • Нарисуйте исходную диаграмму рассеивания: plt.scatter(x, y)
  • Нарисуйте линию линейной регрессии: plt.plot(x, mymodel)
  • Задайте максимальное и минимальное значения оси
  • Пометьте оси: «Средний_пульс» и «Сжигание_калорий».

Вывод:

Линейная регрессия — одна переменная — метод наименьших квадратов

Считаете ли вы, что линия может точно предсказать Calorie_Burnage?

Мы покажем, что одной переменной Average_Pulse недостаточно для точного предсказания Calorie_Burnage.