Наука о данных — случай линейной регрессии
Случай: используйте продолжительность + средний_пульс, чтобы предсказать калорийность_сжигания
Создайте таблицу линейной регрессии со значениями Average_Pulse и Duration в качестве независимых переменных:
Пример
import pandas as pd
import statsmodels.formula.api as smf
full_health_data = pd.read_csv("data.csv", header=0, sep=",")
model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results
= model.fit()
print(results.summary())
Объяснение примера:
- Импортируйте библиотеку statsmodels.formula.api как smf. Statsmodels — это статистическая библиотека на Python.
- Используйте набор full_health_data.
- Создайте модель на основе метода наименьших квадратов с помощью smf.ols(). Обратите внимание, что объясняющая переменная должна быть записана первой в скобках. Используйте набор данных full_health_data.
- Вызывая .fit(), вы получаете переменные результаты. Это содержит много информации о регрессионной модели.
- Вызови summary(), чтобы получить таблицу с результатами линейной регрессии.
Вывод:
Функцию линейной регрессии можно математически переписать как:
Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194
Округление до двух знаков после запятой:
Calorie_Burnage = Average_Pulse * 3.17 +
Duration * 5.84 - 334.52
Определите функцию линейной регрессии в Python
Определите функцию линейной регрессии в Python для выполнения прогнозов.
Что такое Calorie_Burnage, если:
- Средний пульс 110 и продолжительность тренировки 60 минут?
- Средний пульс 140 и продолжительность тренировки 45 минут?
- Средний пульс 175 и продолжительность тренировки 20 минут?
Пример
def Predict_Calorie_Burnage(Average_Pulse,
Duration):
return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)
print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))
Ответы:
- Средний пульс 110, а продолжительность тренировки 60 минут = 365 калорий.
- Средний пульс 140, а продолжительность тренировки 45 минут = 372 калории.
- Средний пульс 175, а продолжительность тренировки 20 минут = 337 калорий.
Доступ к коэффициентам
Посмотрите на коэффициенты:
- Calorie_Burnage увеличивается на 3,17, если Average_Pulse увеличивается на единицу.
- Calorie_Burnage увеличивается на 5,84, если длительность увеличивается на единицу.
Доступ к P-значению
Посмотрите на P-значение для каждого коэффициента.
- Значение P равно 0,00 для параметров Average_Pulse, Duration и Intercept.
- P-значение статистически значимо для всех переменных, так как оно меньше 0,05.
Таким образом, мы можем заключить, что средний_пульс и продолжительность связаны с расходом калорий.
Скорректированный R-квадрат
Возникает проблема с R-квадратом, если у нас есть более одной объясняющей переменной.
R-квадрат почти всегда будет увеличиваться, если мы добавим больше переменных, и никогда не уменьшится.
Это связано с тем, что мы добавляем больше точек данных вокруг функции линейной регрессии.
Если мы добавим случайные переменные, которые не влияют на Calorie_Burnage, мы рискуем сделать ложный вывод, что функция линейной регрессии подходит. Скорректированный R-квадрат решает эту проблему.
Поэтому лучше смотреть на скорректированное значение R-квадрата, если у нас есть более одной независимой переменной.
Скорректированный R-квадрат равен 0,814.
Значение R-Squared всегда находится в диапазоне от 0 до 1 (от 0% до 100%).
- Высокое значение R-квадрата означает, что многие точки данных близки к линии функции линейной регрессии.
- Низкое значение R-квадрата означает, что линия функции линейной регрессии плохо соответствует данным.
Вывод: Модель хорошо соответствует данным!
Поздравляем! Вы завершили последний модуль библиотеки обработки и анализа данных.