DS amaliy misol


ULASHISH

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:

Linear Regression Table Case

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!