Hồi quy tuyến tính một biến bằng công thức bình phương nhỏ nhất
Hồi quy tuyến tính là mô hình học máy đầu tiên của hầu hết mọi người. Với một đặc trưng
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, numpy-axis-reduction.
Nội dung đề bài
Mô tả bài toán
Hồi quy tuyến tính là mô hình học máy đầu tiên của hầu hết mọi người. Với một đặc trưng duy nhất, nghiệm tối ưu có công thức đóng, nên bài này kiểm tra xem bạn có tính đúng độ dốc và tung độ gốc từ dữ liệu nhỏ hay không.
Yêu cầu
Viết hàm fit_linear_regression(x, y) trả về dict {"slope": ..., "intercept": ...} của đường thẳng y = slope * x + intercept khớp dữ liệu theo bình phương nhỏ nhất. Gọi x_bar và y_bar là trung bình của hai cột:
- slope = sum((xi - xbar) * (yi - ybar)) / sum((xi - xbar)2)
- intercept = y_bar - slope * x_bar
Quy ước nộp bài
Nộp hàm fit_linear_regression trong solution.py. Hệ thống gọi hàm trực tiếp với hai đối số theo tên và so giá trị trả về với sai số 1e-6; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- x: danh sách giá trị của đặc trưng, từ 2 đến 20 phần tử.
- y: danh sách giá trị mục tiêu, cùng độ dài với x, không phải đường thẳng đứng
(phương sai của x khác 0).
Output
Dict {"slope": số thực, "intercept": số thực}, giữ đủ độ chính xác của số thực.
Ràng buộc
- Dùng công thức theo độ lệch so với trung bình; không dùng sum(x) * sum(y).
- Không làm tròn kết quả; hệ thống so với sai số 1e-6.
- Mẫu số luôn khác 0 với dữ liệu kiểm tra, nên không cần chặn chia cho 0.
Ví dụ 1
Input
fit_linear_regression(x=[1, 2, 3], y=[3, 5, 7])
Output
{"slope": 2.0, "intercept": 1.0}
Ví dụ 2
Input
fit_linear_regression(x=[0, 1, 2, 3], y=[1, 1, 3, 5])
Output
{"slope": 1.4, "intercept": 0.4}
Giải thích
Với x = [1, 2, 3] và y = [3, 5, 7]: xbar = 2, ybar = 5, sum((xi - 2) * (yi - 5)) = (-1)(-2) + 0 + (1)(2) = 4, sum((xi - 2)2) = 2, nên slope = 4 / 2 = 2.0 và intercept = 5 - 2 * 2 = 1.0.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
