Data Science – případ lineární regrese
Případ: Použijte Duration + Average_Pulse k predikci Calorie_Burnage
Vytvořte tabulku lineární regrese s vysvětlujícími proměnnými Average_Pulse a Duration:
Příklad
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())
Vysvětlený příklad:
- Importujte knihovnu statsmodels.formula.api jako smf. Statsmodels je statistická knihovna v Pythonu.
- Použijte sadu full_health_data.
- Vytvořte model založený na obyčejných nejmenších čtvercích pomocí smf.ols(). Všimněte si, že vysvětlující proměnná musí být zapsána jako první v závorce. Použijte sadu dat full_health_data.
- Zavoláním .fit() získáte výsledky proměnné. To obsahuje mnoho informací o regresním modelu.
- Zavolejte souhrn() pro získání tabulky s výsledky lineární regrese.
Výstup:
Lineární regresní funkce může být přepsána matematicky jako:
Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194
Zaokrouhleno na dvě desetinná místa:
Calorie_Burnage = Average_Pulse * 3.17 +
Duration * 5.84 - 334.52
Definujte funkci lineární regrese v Pythonu
Definujte lineární regresní funkci v Pythonu pro provádění předpovědí.
Co je Calorie_Burnage, pokud:
- Průměrný tep je 110 a délka tréninku 60 minut?
- Průměrný tep je 140 a délka tréninku je 45 minut?
- Průměrný tep je 175 a délka tréninku 20 minut?
Příklad
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))
Odpovědi:
- Průměrný tep je 110 a délka tréninku je 60 minut = 365 kalorií
- Průměrný tep je 140 a délka tréninku je 45 minut = 372 kalorií
- Průměrný tep je 175 a délka tréninku je 20 minut = 337 kalorií
Přístup ke koeficientům
Podívejte se na koeficienty:
- Calorie_Burnage se zvýší o 3,17, pokud se Average_Pulse zvýší o jednu.
- Calorie_Burnage se zvýší o 5,84, pokud se Duration zvýší o jednu.
Přístup k hodnotě P
Podívejte se na P-hodnotu pro každý koeficient.
- P-hodnota je 0,00 pro průměrný_pulz, trvání a zachycení.
- P-hodnota je statisticky významná pro všechny proměnné, protože je menší než 0,05.
Zde tedy můžeme dojít k závěru, že Average_Pulse a Duration mají vztah s Calorie_Burnage.
Upravený R-Squared
Pokud máme více než jednu vysvětlující proměnnou, nastává problém s R-squared.
R-squared se téměř vždy zvýší, pokud přidáme více proměnných, a nikdy se nesníží.
Je to proto, že přidáváme více datových bodů kolem lineární regresní funkce.
Pokud přidáme náhodné proměnné, které neovlivní Calorie_Burnage, riskujeme, že mylně dojdeme k závěru, že lineární regresní funkce je vhodná. Upravený R-squared upravuje tento problém.
Je proto lepší podívat se na upravenou R-squared hodnotu, pokud máme více než jednu vysvětlující proměnnou.
Upravená R-squared je 0,814.
Hodnota R-Squared je vždy mezi 0 až 1 (0 % až 100 %).
- Vysoká hodnota R-squared znamená, že mnoho datových bodů je blízko k přímce funkce lineární regrese.
- Nízká hodnota R-squared znamená, že přímka funkce lineární regrese dobře nesedí s daty.
Závěr: Model dobře odpovídá datovému bodu!
Gratulujeme! Nyní jste dokončili poslední modul knihovny vědy o datech.