Hồi quy tuyến tính, bội và logistic

Nhánh hồi quy: thử thách regressors, hồi quy đơn và bội, đánh giá regressors, cây hồi quy, boosting hồi quy và dự báo thời tiết.
Trung bìnhThuật toán ~60 phút

Giới thiệu

Bài này học hồi quy đoán số liên tục như giá nhà. Nhánh này giúp dự báo thời tiết từ dữ liệu cũ.

Kiến thức cần nhớ

Hồi quy đơn

  • Vẽ đường thẳng sao cho tổng bình phương lỗi nhỏ nhất.
  • Hệ số góc là mỗi đơn vị đặc trưng đổi bao nhiêu mục tiêu.
  • Có công thức đóng nên tính ngay không cần lặp.
  • Ví dụ đời thường: càng học thêm 1 giờ thì điểm tăng 0.5.

Đánh giá và hồi quy bội

  • MSE phạt nặng lỗi lớn, MAE lì hơn với ngoại lệ.
  • R2 cho biết giải thích được bao nhiêu phần trăm biến thiên.
  • Hồi quy bội là siêu phẳng nhiều đặc trưng cùng lúc.
  • Ví dụ đời thường: giá nhà theo cả diện tích và quận.

Cây và boosting hồi quy

  • Cây hồi quy: lá là trung bình vùng, bắt quan hệ cong.
  • Boosting: nhiều cây nông sửa lỗi cho nhau, điểm cao nhất.
  • Tuyến tính thắng giải thích, boosting thắng điểm số.
  • Ví dụ đời thường: đường thẳng kể chuyện, rừng cây vắt kiệt điểm.
Thước đoÝ nghĩaNhạy ngoại lệ
MSETrung bình bình phương lỗiRất nhạy
MAETrung bình trị tuyệt đốiLì hơn
R2% biến thiên giải thích1 là hoàn hảo

Ví dụ

  • Input: điểm nằm đúng trên đường thẳng -> Output: sai số quanh 0.
  • Câu này cho thấy đường thẳng khôi phục hoàn hảo.
  • Input: mô hình chỉ đoán trung bình -> Output: R2 bằng 0.
  • Câu này kiểm tra biên dở nhất của R2.

💻 Bài tập

Ngôn ngữ: Python 3 với NumPy. Không dùng sklearn.linear_model trừ khi đối chiếu. Nộp vào day-055/.

Bài 1: Hồi quy tuyến tính công thức đóng

class LinearRegression:
    def fit(self, X, y): ...       # thêm cột 1 cho hệ số chặn, giải bằng np.linalg.lstsq
    def predict(self, X): ...
    coef_: np.ndarray; intercept_: float
def mse(y, yhat); def mae(y, yhat); def r2(y, yhat)
X = [[1],[2],[3]], y = [2,4,6]       -> coef 2, intercept 0, r2 = 1
Mô hình luôn đoán mean(y)            -> r2 = 0
Thêm 1 ngoại lệ lớn                  -> MSE tăng mạnh hơn MAE (in số)

Bài 2: Hồi quy bội và diễn giải

Dùng bộ California Housing.

  1. Chuẩn hóa đặc trưng (scaler ngày 52, fit trên train).
  2. In hệ số từng đặc trưng, sắp theo trị tuyệt đối. Viết 3 câu diễn giải 3 hệ số lớn nhất.
  3. Thêm Ridge(alpha): w=(XTX+αI)−1XTyw = (X^TX + \alpha I)^{-1}X^Ty, không phạt hệ số chặn. Vẽ hệ số theo alpha từ 1e-3 tới 1e3.
  4. In R2 test của Linear và Ridge tốt nhất.

Bài 3: Logistic regression (nâng cao)

class LogisticRegression:
    def __init__(self, lr=0.1, epochs=1000, l2=0.0): ...
    def fit(self, X, y): ...           # gradient descent trên log-loss, vector hóa
    def predict_proba(self, X): ...
    def predict(self, X, threshold=0.5): ...

Dùng sigmoid ổn định số: tách trường hợp z >= 0 và z < 0.

  1. Chạy trên bộ Breast Cancer (sklearn datasets). In accuracy, log-loss train/test.
  2. Vẽ log-loss theo epoch: phải giảm dần.
  3. So hệ số với sklearn.linear_model.LogisticRegression(penalty=None) sau đủ epoch.

✅ Tiêu chí hoàn thành

  • Test mẫu pass.
  • Hệ số Linear khớp sklearn với sai số 1e-6.
  • Có hình đường đi hệ số Ridge và hình log-loss theo epoch.
  • Giải thích được R2 âm nghĩa là gì.

❓ Câu hỏi ôn tập

  • Hồi quy đơn vẽ đường theo tiêu chí nào?
  • MSE khác MAE ở điểm nào?
  • R2 bằng 0 và bằng 1 nghĩa là gì?
  • Khi nào dùng cây thay vì đường thẳng?

🌕 Bạn đã hoàn thành ngày 55. Làm hết bài tập phía trên rồi sang ngày tiếp theo.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.