วิทยาศาสตร์ข้อมูล- กรณีการถดถอยเชิงเส้น
กรณี: ใช้ 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 ต่ำหมายความว่าเส้นฟังก์ชันการถดถอยเชิงเส้นไม่พอดีกับข้อมูล
สรุป: โมเดลนี้เหมาะกับจุดข้อมูลมาก!
ยินดีด้วย! คุณได้เสร็จสิ้นโมดูลสุดท้ายของไลบรารีวิทยาศาสตร์ข้อมูลแล้ว