Bình phương tối thiểu với `statsmodels`
Một số thư viện Python cung cấp các giao diện trừu tượng tiện lợi để bạn không phải luôn xử lý tường minh mọi chi tiết tối ưu hóa mô hình.
Ví dụ, trong bài tập này, bạn sẽ dùng thư viện statsmodels theo một quy trình làm việc cấp cao, tổng quát hơn để xây dựng mô hình bằng tối ưu hóa bình phương tối thiểu (tối thiểu hóa RSS).
Để bạn bắt đầu nhanh hơn, chúng tôi đã nạp sẵn dữ liệu từ x_data, y_data = load_data() và lưu vào một pandas DataFrame với tên cột x_column và y_column bằng lệnh df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))
Bài tập này là một phần của khóa học
Nhập môn Mô hình tuyến tính với Python
Hướng dẫn bài tập
- Tạo mô hình
ols()với công thứcformula="y_column ~ x_column"và dữ liệudata=df, sau đó.fit()mô hình với dữ liệu. - Dùng
model_fit.predict()để lấy các giá trịy_model. - Sử dụng hàm đã cung cấp
plot_data_with_model()để vẽ chồngy_datavớiy_model. - Trích xuất các tham số mô hình
a0vàa1từmodel_fit.params. - Dùng
compute_rss_and_plot_fit()để xác nhận các kết quả này nhất quán với các công thức giải tích đã được triển khai bằngnumpy.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Pass data and `formula` into ols(), use and `.fit()` the model to the data
model_fit = ols(____="y_column ~ x_column", ____=df).____()
# Use .predict(df) to get y_model values, then over-plot y_data with y_model
y_model = model_fit.____(df)
fig = plot_data_with_model(x_data, ____, ____)
# Extract the a0, a1 values from model_fit.params
a0 = model_fit.____['Intercept']
a1 = model_fit.____['x_column']
# Visually verify that these parameters a0, a1 give the minimum RSS
fig, rss = compute_rss_and_plot_fit(a0, a1)