1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Tư duy Thống kê với Python (Phần 2)

Connected

Bài tập

Tối ưu ở chỗ nào?

Hàm np.polyfit() mà bạn dùng để lấy các tham số hồi quy sẽ tìm slope và intercept tối ưu. Nó tối ưu tổng bình phương phần dư, còn gọi là RSS (residual sum of squares). Trong bài này, bạn sẽ vẽ hàm đang được tối ưu — tức RSS — theo tham số slope a. Để làm điều đó, cố định intercept bằng giá trị bạn tìm được khi tối ưu. Sau đó, vẽ RSS theo slope. Giá trị nhỏ nhất nằm ở đâu?

Hướng dẫn

100 XP
  • Xác định các giá trị của slope để tính RSS. Dùng np.linspace() để lấy 200 điểm trong khoảng từ 0 đến 0.1. Ví dụ, để lấy 100 điểm trong khoảng từ 0 đến 0.5, bạn có thể dùng np.linspace() như sau: np.linspace(0, 0.5, 100).
  • Khởi tạo một mảng rss để chứa RSS bằng np.empty_like() và mảng bạn vừa tạo ở trên. Hàm empty_like() trả về một mảng mới có cùng shape và kiểu với mảng cho trước (trong trường hợp này là a_vals).
  • Viết vòng lặp for để tính tổng RSS theo slope. Gợi ý: RSS được cho bởi np.sum((y_data - a * x_data - b)**2). Biến b bạn đã tính ở bài trước đã có sẵn trong phạm vi làm việc. Ở đây, fertility là y_data và illiteracy là x_data.
  • Vẽ RSS (rss) theo slope (a_vals).
  • Nhấn Gửi câu trả lời để xem biểu đồ!