Datawetenskap - Lineêre regressiegeval


Geval: Gebruik Duration + Average_Pulse om Kalorie_Burnage te voorspel

Skep 'n lineêre regressie-tabel met gemiddelde_puls en duur as verklarende veranderlikes:

Voorbeeld

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())

Voorbeeld verduidelik:

  • Voer die biblioteek statsmodels.formula.api in as smf. Statsmodels is 'n statistiese biblioteek in Python.
  • Gebruik die volledige_health_data-stel.
  • Skep 'n model gebaseer op gewone kleinste vierkante met smf.ols(). Let daarop dat die verduidelikende veranderlike eerste tussen hakies geskryf moet word. Gebruik die full_health_data-datastel.
  • Deur .fit() te roep, verkry jy die veranderlike resultate. Dit bevat baie inligting oor die regressiemodel.
  • Roep summary() om die tabel met die resultate van lineêre regressie te kry.

Uitset:

Lineêre Regressie Tabel Geval

Die lineêre regressiefunksie kan wiskundig herskryf word as:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Afgerond tot twee desimale:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Definieer die lineêre regressiefunksie in Python

Definieer die lineêre regressiefunksie in Python om voorspellings uit te voer.

Wat is Calorie_Burnage as:

  • Gemiddelde polsslag is 110 en duur van die oefensessie is 60 minute?
  • Gemiddelde polsslag is 140 en duur van die oefensessie is 45 minute?
  • Gemiddelde polsslag is 175 en duur van die oefensessie is 20 minute?

Voorbeeld

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))

Die antwoorde:

  • Gemiddelde polsslag is 110 en die duur van die oefensessie is 60 minute = 365 kalorieë
  • Gemiddelde polsslag is 140 en die duur van die oefensessie is 45 minute = 372 kalorieë
  • Gemiddelde polsslag is 175 en die duur van die oefensessie is 20 minute = 337 kalorieë

Toegang tot die koëffisiënte

Kyk na die koëffisiënte:

  • Kalorie_Verbranding neem toe met 3,17 as Gemiddelde_Puls met een toeneem.
  • Calorie_Burnage neem toe met 5,84 as Duur met een toeneem.

Toegang tot die P-waarde

Kyk na die P-waarde vir elke koëffisiënt.

  • P-waarde is 0.00 vir Gemiddelde_Puls, Duur en die Afsnit.
  • Die P-waarde is statisties betekenisvol vir al die veranderlikes, aangesien dit minder as 0,05 is.

So hier kan ons tot die gevolgtrekking kom dat Average_Pulse and Duration 'n verhouding met Calorie_Burnage het.


Aangepaste R-kwadraat

Daar is 'n probleem met R-kwadraat as ons meer as een verduidelikende veranderlike het.

R-kwadraat sal byna altyd toeneem as ons meer veranderlikes byvoeg, en sal nooit afneem nie.

Dit is omdat ons meer datapunte rondom die lineêre regressiefunksie byvoeg.

As ons ewekansige veranderlikes byvoeg wat nie Calorie_Burnage beïnvloed nie, loop ons die risiko om vals af te lei dat die lineêre regressiefunksie goed pas. Aangepaste R-kwadraat pas vir hierdie probleem aan.

Dit is dus beter om na die aangepaste R-kwadraatwaarde te kyk as ons meer as een verduidelikende veranderlike het.

Die aangepaste R-kwadraat is 0,814.

Die waarde van R-kwadraat is altyd tussen 0 tot 1 (0% tot 100%).

  • 'n Hoë R-kwadraatwaarde beteken dat baie datapunte naby die lineêre regressiefunksielyn is.
  • 'n Lae R-kwadraatwaarde beteken dat die lineêre regressiefunksielyn nie goed by die data pas nie.

Gevolgtrekking: Die model pas goed by die datapunt!

Baie geluk! Jy het nou die finale module van die datawetenskap-biblioteek voltooi.