Hồi Quy Tuyến Tính Ridge Bằng Phương Trình Chuẩn Tắc Với np.linalg
Để dự đoán điểm số năng lực hoặc thời gian hoàn thành khóa học của học viên tại AI Empire Academy, ta xây dựng mô hình hồi quy tuyến tính có chính quy hóa Ridge.
Tiến độ của tôi ở bài này
Điểm đượ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: matrix multiplication, np linalg solve, r2 score.
Nội dung đề bài
Mục tiêu kiến thức
- Áp dụng các phép toán ma trận trong
np.linalg: nhân ma trận@, giải hệ phương trình tuyến tínhnp.linalg.solve(). - Hiểu giải thuật Hồi quy Ridge (L2 Regularization) để khắc phục hiện tượng ma trận kỳ dị (Multicollinearity / Singular Matrix).
- Đánh giá chất lượng mô hình bằng hệ số xác định R2 Score.
Mô tả bài toán
Để dự đoán điểm số năng lực hoặc thời gian hoàn thành khóa học của học viên tại AI Empire Academy, ta xây dựng mô hình hồi quy tuyến tính có chính quy hóa Ridge.
Hãy viết hàm: ridge_regression_fit(X: np.ndarray, y: np.ndarray, lambda_reg: float = 1e-3) -> tuple[np.ndarray, float]
Yêu cầu:
- Kiểm tra đầu vào:
Xphải là mảng 2 chiều,yphải là mảng 1 chiều cùng số lượng mẫu (len(X) == len(y)). Nếu không, némValueError.- Nếu
lambda_reg < 0: némValueError("lambda_reg phai >= 0"). - Bổ sung hệ số tự do (Bias / Intercept):
- Ghép thêm một cột toàn số 1 vào bên phải ma trận X: Xb = [X, 1] có shape
(N, D + 1). - Giải phương trình chuẩn tắc Ridge:
- Ma trận hệ số: A = XbT Xb + λ I(D+1).
- Vector vế phải: b = XbT y.
- Tìm nghiệm vector trọng số w bằng hàm
np.linalg.solve(A, b). - Tính hệ số xác định R2:
- Dự đoán y = Xb w.
- SSres = ∑ (y - y)2.
- SStot = ∑ (y - y)2 (với y = mean(y)).
- R2 = 1.0 - SSresSStot + 10-12.
- Kết quả trả về: Tuple
(weights, float(r2)).
Input
- Các tham số truyền vào hàm/lớp ridge_regression_fit hoặc dữ liệu đầu vào theo định dạng mô tả.
Output
- Kết quả trả về của hàm/lớp ridge_regression_fit hoặc dữ liệu in ra màn hình theo đúng đặc tả.
Ràng buộc
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
Ví dụ 1
Input
ridge_regression_fit(X=[[1.0], [2.0], [3.0], [4.0]], y=[2.0, 4.0, 6.0, 8.0], lambda_reg=1e-05)Output
TrueGiải thích
Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.
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.
