Khoa học dữ liệu - Trường hợp hồi quy tuyến tính


Trường hợp: Thời lượng sử dụng + Thời lượng trung bình để dự đoán Calorie_Burnage

Tạo Bảng hồi quy tuyến tính với Average_Pulse và Duration dưới dạng các Biến giải thích:

Thí dụ

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

Giải thích ví dụ:

  • Nhập thư viện statsmodels.formula.api dưới dạng smf. Statsmodels là một thư viện thống kê bằng Python.
  • Sử dụng bộ full_health_data.
  • Tạo một mô hình dựa trên Bình phương nhỏ nhất thông thường với smf.ols (). Chú ý rằng biến giải thích phải được viết trước trong ngoặc đơn. Sử dụng tập dữ liệu full_health_data.
  • Bằng cách gọi .fit (), bạn nhận được các kết quả thay đổi. Điều này chứa rất nhiều thông tin về mô hình hồi quy.
  • Gọi Summary () để nhận bảng với kết quả của hồi quy tuyến tính.

Đầu ra:

Trường hợp bảng hồi quy tuyến tính

Hàm hồi quy tuyến tính có thể được viết lại theo toán học như sau:

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

Làm tròn đến hai số thập phân:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Xác định hàm hồi quy tuyến tính trong Python

Xác định hàm hồi quy tuyến tính trong Python để thực hiện các dự đoán.

Calorie_Burnage là gì nếu:

  • Mạch trung bình là 110 và thời lượng của buổi tập là 60 phút?
  • Mạch trung bình là 140 và thời gian của buổi tập là 45 phút?
  • Xung trung bình là 175 và thời gian của buổi tập là 20 phút?

Thí dụ

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

Những câu trả lời:

  • Xung trung bình là 110 và thời lượng của buổi tập là 60 phút = 365 Calo
  • Xung trung bình là 140 và thời lượng của buổi tập là 45 phút = 372 Calo
  • Xung nhịp trung bình là 175 và thời lượng của buổi tập là 20 phút = 337 Calo

Truy cập Hệ số

Nhìn vào các hệ số:

  • Calorie_Burnage tăng lên 3,17 nếu Average_Pulse tăng một.
  • Calorie_Burnage tăng 5,84 nếu Duration tăng một.

Truy cập giá trị P

Nhìn vào giá trị P cho mỗi hệ số.

  • Giá trị P là 0,00 cho Average_Pulse, Duration và Intercept.
  • Giá trị P có ý nghĩa thống kê đối với tất cả các biến, vì nó nhỏ hơn 0,05.

Vì vậy, ở đây chúng ta có thể kết luận rằng Average_Pulse và Duration có mối quan hệ với Calorie_Burnage.


R-Bình phương được điều chỉnh

Có vấn đề với R bình phương nếu chúng ta có nhiều hơn một biến giải thích.

Bình phương R hầu như sẽ luôn tăng nếu chúng ta thêm nhiều biến hơn, và sẽ không bao giờ giảm.

Điều này là do chúng tôi đang thêm nhiều điểm dữ liệu hơn xung quanh hàm hồi quy tuyến tính.

Nếu chúng tôi thêm các biến ngẫu nhiên không ảnh hưởng đến Calorie_Burnage, chúng tôi có nguy cơ kết luận sai rằng hàm hồi quy tuyến tính là phù hợp tốt. Bình phương R được điều chỉnh sẽ điều chỉnh cho vấn đề này.

Do đó, tốt hơn là nên xem xét giá trị bình phương R đã điều chỉnh nếu chúng ta có nhiều hơn một biến giải thích.

Bình phương R đã điều chỉnh là 0,814.

Giá trị của R-Squared luôn nằm trong khoảng từ 0 đến 1 (0% đến 100%).

  • Giá trị R-Squared cao có nghĩa là nhiều điểm dữ liệu gần với đường hàm hồi quy tuyến tính.
  • Giá trị R-Squared thấp có nghĩa là đường hàm hồi quy tuyến tính không phù hợp với dữ liệu.

Kết luận: Mô hình phù hợp tốt với điểm dữ liệu!

Xin chúc mừng! Bây giờ bạn đã hoàn thành mô-đun cuối cùng của thư viện khoa học dữ liệu.