Bắt đầu ngayBắt đầu miễn phí

Bình phương tối thiểu với `numpy`

Các công thức dưới đây là kết quả từ phần giải tích đã thảo luận ở phần mở đầu. Trong bài này, ta giả định phần giải tích là chính xác và triển khai các công thức này bằng numpy.

$$ a_{1} = \frac{ covariance(x, y) }{ variance(x) } $$ $$ a_{0} = mean(y) - a_{1} mean(x) $$

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

Xem khóa học

Hướng dẫn bài tập

  • Tính giá trị trung bình và độ lệch của hai biến x, y từ dữ liệu đã nạp sẵn.
  • Dùng np.sum() để hoàn thiện các công thức bình phương tối thiểu và tính các giá trị tối ưu cho a0a1.
  • Dùng model() để tạo giá trị mô hình y_model từ hệ số góc a1 và tung độ gốc a0 tối ưu đó.
  • Dùng hàm dựng sẵn compute_rss_and_plot_fit() để trực quan xác nhận rằng mô hình tối ưu này khớp với dữ liệu.

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.

# prepare the means and deviations of the two variables
x_mean = np.____(x)
y_mean = np.____(y)
x_dev = x - ____
y_dev = y - ____

# Complete least-squares formulae to find the optimal a0, a1
a1 = np.sum(____ * ____) / np.sum( np.square(____) )
a0 = ____ - (a1 * ____)

# Use the those optimal model parameters a0, a1 to build a model
y_model = model(x, ____, ____)

# plot to verify that the resulting y_model best fits the data y
fig, rss = compute_rss_and_plot_fit(a0, a1)
Chỉnh sửa và Chạy Mã