DS amaliy misol
Amaliy misol: Calorie_Burnage’ni bashorat qilish uchun Duration + Average_Pulse’dan foydalanish
Average_Pulse va Duration tushuntiruvchi o‘zgaruvchilar bo‘lgan chiziqli regressiya jadvalini yarating:
Misol
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())
O‘zingiz sinab ko‘ring »
Misol izohi:
- statsmodels.formula.api kutubxonasini smf sifatida import qiling. Statsmodels — Pythondagi statistik kutubxona.
- full_health_data to‘plamidan foydalaning.
- smf.ols() yordamida Ordinary Least Squares (oddiy eng kichik kvadratlar usuli) asosidagi model yarating. E’tibor bering, tushuntiruvchi o‘zgaruvchi qavs ichida birinchi yozilishi kerak. full_health_data ma’lumotlar to‘plamidan foydalaning.
- .fit() ni chaqirib, results o‘zgaruvchisini olasiz. U regressiya modeli haqida ko‘plab ma’lumotlarni saqlaydi.
- Chiziqli regressiya natijalari jadvalini olish uchun summary() ni chaqiring.
Natija:
Chiziqli regressiya funksiyasini matematik tarzda quyidagicha qayta yozish mumkin:
Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194
Ikki xonali kasrgacha yaxlitlangan:
Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52
Chiziqli regressiya funksiyasini Pythonda aniqlash
Bashorat qilish uchun chiziqli regressiya funksiyasini Pythonda aniqlang.
Quyidagi hollarda Calorie_Burnage qancha bo‘ladi:
- O‘rtacha puls 110 va mashg‘ulot davomiyligi 60 daqiqa bo‘lsa?
- O‘rtacha puls 140 va mashg‘ulot davomiyligi 45 daqiqa bo‘lsa?
- O‘rtacha puls 175 va mashg‘ulot davomiyligi 20 daqiqa bo‘lsa?
Misol
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))
O‘zingiz sinab ko‘ring »
Javoblar:
- O‘rtacha puls 110 va mashg‘ulot davomiyligi 60 daqiqa = 365 kaloriya
- O‘rtacha puls 140 va mashg‘ulot davomiyligi 45 daqiqa = 372 kaloriya
- O‘rtacha puls 175 va mashg‘ulot davomiyligi 20 daqiqa = 337 kaloriya
Koeffitsiyentlarni ko‘rib chiqish
Koeffitsiyentlarga qarang:
- Agar Average_Pulse bittaga oshsa, Calorie_Burnage 3.17 ga oshadi.
- Agar Duration bittaga oshsa, Calorie_Burnage 5.84 ga oshadi.
P-qiymatni ko‘rib chiqish
Har bir koeffitsiyent uchun P-qiymatga qarang.
- Average_Pulse, Duration va kesishma nuqtasi (Intercept) uchun P-qiymat 0.00 ga teng.
- P-qiymat barcha o‘zgaruvchilar uchun statistik jihatdan ahamiyatli, chunki u 0.05 dan kichik.
Demak, bu yerda Average_Pulse va Duration Calorie_Burnage bilan bog‘liq, degan xulosaga kelishimiz mumkin.
Tuzatilgan R-kvadrat
Agar bittadan ortiq tushuntiruvchi o‘zgaruvchi bo‘lsa, R-kvadrat bilan bog‘liq muammo yuzaga keladi.
Ko‘proq o‘zgaruvchi qo‘shsak, R-kvadrat deyarli har doim oshadi va hech qachon kamaymaydi.
Buning sababi — biz chiziqli regressiya funksiyasi atrofiga ko‘proq ma’lumot nuqtalarini qo‘shyapmiz.
Agar Calorie_Burnage’ga ta’sir qilmaydigan tasodifiy o‘zgaruvchilarni qo‘shsak, chiziqli regressiya funksiyasi ma’lumotlarga yaxshi mos keladi, degan noto‘g‘ri xulosaga kelish xavfi bor. Tuzatilgan R-kvadrat bu muammoni hisobga olib tuzatadi.
Shuning uchun bittadan ortiq tushuntiruvchi o‘zgaruvchi bo‘lsa, tuzatilgan R-kvadrat qiymatiga qarash yaxshiroq.
Tuzatilgan R-kvadrat 0.814 ga teng.
R-kvadrat qiymati har doim 0 dan 1 gacha (0% dan 100% gacha) bo‘ladi.
- Yuqori R-kvadrat qiymati ko‘plab ma’lumot nuqtalari chiziqli regressiya funksiyasi chizig‘iga yaqin ekanini bildiradi.
- Past R-kvadrat qiymati chiziqli regressiya funksiyasi chizig‘i ma’lumotlarga yaxshi mos kelmasligini bildiradi.
Xulosa: model ma’lumot nuqtalariga yaxshi mos keladi!
Tabriklaymiz! Siz Data Science kutubxonasining so‘nggi modulini yakunladingiz.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
