1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Mô hình tuyến tính với Python

Connected

Bài tập

Tối ưu hóa với Scipy

Có thể viết một cách cài đặt numpy cho nghiệm giải tích để tìm giá trị RSS nhỏ nhất. Nhưng với các mô hình phức tạp hơn, không thể tìm được công thức giải tích, nên chúng ta chuyển sang các phương pháp khác.

Trong bài tập này, bạn sẽ dùng scipy.optimize để áp dụng một cách tiếp cận tổng quát hơn nhằm giải cùng một bài toán tối ưu.

Qua đó, bạn sẽ thấy các giá trị trả về bổ sung từ phương thức này cho chúng ta biết “mức tốt nhất” tốt đến đâu. Ở đây, chúng ta sẽ dùng cùng dữ liệu đo được và tham số như ở bài trước để dễ so sánh với cách làm mới bằng scipy.

Hướng dẫn

100 XP
  • Định nghĩa hàm model_func(x, a0, a1) sao cho với một mảng x cho trước, hàm trả về a0 + a1*x.
  • Dùng hàm optimize.curve_fit() của scipy để tính các giá trị tối ưu cho a0 và a1.
  • Giải nén param_opt để lưu tham số mô hình thành a0 = param_opt[0] và a1 = param_opt[1].
  • Dùng hàm đã định nghĩa sẵn compute_rss_and_plot_fit để kiểm tra và xác nhận câu trả lời của bạn.