วิทยาศาสตร์ข้อมูล- กรณีการถดถอยเชิงเส้น


กรณี: ใช้ Duration + Average_Pulse เพื่อทำนาย Calorie_Burnage

สร้างตารางการถดถอยเชิงเส้นด้วย Average_Pulse และ Duration เป็นตัวแปรอธิบาย:

ตัวอย่าง

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

ตัวอย่างที่อธิบาย:

  • นำเข้าไลบรารี statsmodels.formula.api เป็น smf Statsmodels เป็นไลบรารีสถิติใน Python
  • ใช้ชุด full_health_data
  • สร้างแบบจำลองตามช่องสี่เหลี่ยมน้อยที่สุดสามัญด้วย smf.ols() สังเกตว่าต้องเขียนตัวแปรอธิบายก่อนในวงเล็บ ใช้ชุดข้อมูล full_health_data
  • โดยการเรียก .fit() คุณจะได้ผลลัพธ์ของตัวแปร มีข้อมูลมากมายเกี่ยวกับแบบจำลองการถดถอย
  • สรุปการโทร () เพื่อรับตารางพร้อมผลลัพธ์ของการถดถอยเชิงเส้น

เอาท์พุท:

กรณีตารางการถดถอยเชิงเส้น

ฟังก์ชันการถดถอยเชิงเส้นสามารถเขียนใหม่ทางคณิตศาสตร์ได้ดังนี้:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

ปัดเศษเป็นทศนิยมสองตำแหน่ง:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


กำหนดฟังก์ชันการถดถอยเชิงเส้นใน Python

กำหนดฟังก์ชันการถดถอยเชิงเส้นใน Python เพื่อทำการคาดการณ์

Calorie_Burnage คืออะไรถ้า:

  • ชีพจรเฉลี่ย 110 และระยะเวลาการฝึก 60 นาที?
  • ชีพจรเฉลี่ย 140 และระยะเวลาการฝึก 45 นาที?
  • ชีพจรเฉลี่ย 175 และระยะเวลาการฝึก 20 นาที?

ตัวอย่าง

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

คำตอบ:

  • ชีพจรเฉลี่ย 110 และระยะเวลาการฝึก 60 นาที = 365 แคลอรี่
  • ชีพจรเฉลี่ย 140 และระยะเวลาการฝึก 45 นาที = 372 แคลอรี่
  • ชีพจรเฉลี่ย 175 และระยะเวลาการฝึก 20 นาที = 337 แคลอรี่

เข้าถึงสัมประสิทธิ์

ดูค่าสัมประสิทธิ์:

  • Calorie_Burnage เพิ่มขึ้น 3.17 ถ้า Average_Pulse เพิ่มขึ้นหนึ่ง
  • Calorie_Burnage เพิ่มขึ้น 5.84 ถ้า Duration เพิ่มขึ้นหนึ่ง

เข้าถึง P-Value

ดูค่า P สำหรับแต่ละสัมประสิทธิ์

  • ค่า P คือ 0.00 สำหรับ Average_Pulse, Duration และ Intercept
  • ค่า P มีนัยสำคัญทางสถิติสำหรับตัวแปรทั้งหมด เนื่องจากมีค่าน้อยกว่า 0.05

ดังนั้น เราสามารถสรุปได้ว่า Average_Pulse และ Duration มีความสัมพันธ์กับ Calorie_Burnage


ปรับ R-Squared

มีปัญหากับ R-squared หากเรามีตัวแปรอธิบายมากกว่าหนึ่งตัว

R-squared จะเพิ่มขึ้นเกือบทุกครั้งหากเราเพิ่มตัวแปรมากขึ้นและจะไม่ลดลง

เนื่องจากเรากำลังเพิ่มจุดข้อมูลรอบฟังก์ชันการถดถอยเชิงเส้นมากขึ้น

หากเราเพิ่มตัวแปรสุ่มที่ไม่ส่งผลต่อ Calorie_Burnage เราเสี่ยงที่จะสรุปอย่างไม่ถูกต้องว่าฟังก์ชันการถดถอยเชิงเส้นเหมาะสม R-squared ที่ปรับปรุงแล้วจะปรับสำหรับปัญหานี้

ดังนั้นจึงเป็นการดีกว่าที่จะดูค่า R-squared ที่ปรับแล้ว หากเรามีตัวแปรอธิบายมากกว่าหนึ่งตัว

R-squared ที่ปรับแล้วคือ 0.814

ค่าของ R-Squared จะอยู่ระหว่าง 0 ถึง 1 เสมอ (0% ถึง 100%)

  • ค่า R-Squared สูงหมายความว่าจุดข้อมูลจำนวนมากอยู่ใกล้กับเส้นฟังก์ชันการถดถอยเชิงเส้น
  • ค่า R-Squared ต่ำหมายความว่าเส้นฟังก์ชันการถดถอยเชิงเส้นไม่พอดีกับข้อมูล

สรุป: โมเดลนี้เหมาะกับจุดข้อมูลมาก!

ยินดีด้วย! คุณได้เสร็จสิ้นโมดูลสุดท้ายของไลบรารีวิทยาศาสตร์ข้อมูลแล้ว