python-038Đọc toàn bộ đề miễn phí

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.

PythonTrung bình30 phút

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ủ đề

numpylinear algebraregressionridge regularization

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ính np.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:
  • X phải là mảng 2 chiều, y phải là mảng 1 chiều cùng số lượng mẫu (len(X) == len(y)). Nếu không, ném ValueError.
  • Nếu lambda_reg < 0: ném ValueError("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

True

Giả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.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.