Ciência de Dados - Regressão Linear
Falta uma variável importante que afeta Calorie_Burnage, que é a duração da sessão de treinamento.
Duração em combinação com Average_Pulse irá explicar Calorie_Burnage mais precisamente.
Regressão linear
O termo regressão é usado quando você tenta encontrar a relação entre variáveis.
Em Machine Learning e em modelagem estatística, essa relação é usada para prever o resultado dos eventos.
Neste módulo, abordaremos as seguintes questões:
- Podemos concluir que Average_Pulse e Duration estão relacionados a Calorie_Burnage?
- Podemos usar Average_Pulse e Duration para prever Calorie_Burnage?
Método dos mínimos quadrados
A regressão linear usa o método dos mínimos quadrados.
O conceito é desenhar uma linha através de todos os pontos de dados plotados. A linha é posicionada de forma a minimizar a distância de todos os pontos de dados.
A distância é chamada de "resíduos" ou "erros".
As linhas tracejadas vermelhas representam a distância dos pontos de dados até a função matemática desenhada.
Regressão linear usando uma variável explicativa
Neste exemplo, tentaremos prever Calorie_Burnage com Average_Pulse usando Regressão Linear:
Exemplo
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()
Exemplo explicado:
- Importe os módulos que você precisa: Pandas, matplotlib e Scipy
- Isole Average_Pulse como x. Isolar Calorie_burnage como y
- Obtenha valores de chave importantes com: slope, intercept, r, p, std_err = stats.linregress(x, y)
- Crie uma função que use os valores de inclinação e interceptação para retornar um novo valor. Este novo valor representa onde no eixo y o valor x correspondente será colocado
- Execute cada valor da matriz x por meio da função. Isso resultará em um novo array com novos valores para o eixo y: mymodel = list(map(myfunc, x))
- Desenhe o gráfico de dispersão original: plt.scatter(x, y)
- Desenhe a linha de regressão linear: plt.plot(x, mymodel)
- Definir valores máximos e mínimos do eixo
- Rotule o eixo: "Average_Pulse" e "Calorie_Burnage"
Saída:
Você acha que a linha é capaz de prever Calorie_Burnage com precisão?
Mostraremos que a variável Average_Pulse sozinha não é suficiente para fazer uma previsão precisa de Calorie_Burnage.