Khoa học dữ liệu - Trường hợp hồi quy tuyến tính
Trường hợp: Sử dụng Thời lượng + Average_Pulse để dự đoán lượng calo_đốt cháy
Tạo Bảng hồi quy tuyến tính với Average_Pulse và Thời lượng dưới dạng các biến giải thích:
Ví 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())
Hãy tự mình thử »Ví dụ giải thích:
- 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ô hình dựa trên Bình phương tối thiểu thông thường với smf.ols(). Lưu ý 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 thu đượ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() để lấy bảng có kết quả hồi quy tuyến tính.
Đầu ra:
Hàm hồi quy tuyến tính có thể được viết lại về mặt 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 dự đoán.
Calorie_Burnage là gì nếu:
- Mạch trung bình là 110 và thời gian tập luyện là 60 phút?
- Mạch trung bình là 140 và thời gian tập luyện là 45 phút?
- Mạch trung bình là 175 và thời gian tập luyện là 20 phút?
Ví 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))
Hãy tự mình thử »Những câu trả lời:
- Mạch trung bình là 110 và thời gian tập luyện là 60 phút = 365 Calo
- Mạch trung bình là 140 và thời gian tập luyện là 45 phút = 372 Calo
- Mạch trung bình là 175 và thời gian tập luyện là 20 phút = 337 Calo
Truy cập các hệ số
Xét các hệ số:
- Calorie_Burnage tăng lên 3,17 nếu Average_Pulse tăng thêm một.
- Calo_Burnage tăng lên 5,84 nếu Thời lượng tăng thêm 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, Thời lượng và Chặn.
- 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.
Bình phương R đã đ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 ta thêm các biến ngẫu nhiên không ảnh hưởng đến Calorie_Burnage, chúng ta có nguy cơ kết luận sai rằng hàm hồi quy tuyến tính là phù hợp. Điều chỉnh R-bình phương đã điều chỉnh cho vấn đề này.
Do đó, tốt hơn 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 rất phù hợp với điểm dữ liệu!
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.