Hồi quy tuyến tính – Linear Regression


1. Vấn đề đặt ra

Trong nhiều bài toán thực tế, chúng ta cần dự đoán một giá trị thực liên tục dựa trên các đặc trưng đầu vào. Ví dụ:

  • Dự đoán giá nhà từ diện tích, số phòng, vị trí
  • Dự đoán điểm thi từ thời gian học, số lần ôn tập
  • Dự đoán doanh thu từ chi tiêu quảng cáo

Hồi quy tuyến tính (Linear Regression) là mô hình cơ bản và quan trọng nhất dùng để giải bài toán này. Mặc dù đơn giản, nó đặt nền móng cho rất nhiều mô hình hiện đại trong học máy.


2. Mô hình toán học

2.1. Mô hình hồi quy đơn biến

Với một đặc trưng x, mô hình dự đoán giá trị đầu ra y^ theo công thức tuyến tính:y^=wx+b

Trong đó:

  • w: hệ số hồi quy (slope)
  • b: hệ số chệch (bias)

2.2. Hồi quy đa biến

Với nhiều đặc trưng đầu vào x=(x1,x2,…,xd), mô hình trở thành:y^=w1x1+w2x2+⋯+wdxd+b=wTx+b

Hoặc viết dưới dạng ma trận:y^=Xw+b

Trong đó:

  • X∈Rn×d: ma trận dữ liệu (n mẫu, d đặc trưng)
  • w∈Rd: vector hệ số
  • y^∈Rn: vector dự đoán

3. Hàm mất mát và tối ưu

3.1. Hàm mất mát (Loss Function)

Chúng ta đo sai số giữa dự đoán và giá trị thực bằng Mean Squared Error (MSE):L(w,b)=1n∑i=1n(y^i−yi)2=1n∥Xw+b−y∥2

3.2. Tối ưu hoá bằng đạo hàm

Tìm w∗,b∗ sao cho hàm mất mát nhỏ nhất:(w∗,b∗)=arg⁡min⁡w,bL(w,b)

Ta có thể giải bài toán này:

  • Bằng đạo hàm → công thức đóng (closed-form):

w∗=(XTX)−1XTy

  • Hoặc dùng thuật toán Gradient Descent (khi dữ liệu lớn hoặc không khả thi tính nghịch đảo)

4. Các giả định của mô hình

Linear Regression chỉ hoạt động tốt khi các giả định sau được thỏa mãn:

  1. Linearity: Mối quan hệ giữa đầu vào và đầu ra là tuyến tính
  2. Independence: Các mẫu dữ liệu độc lập
  3. Homoscedasticity: Phương sai của sai số là không đổi
  4. Normality of residuals: Phần dư (residual) phân phối chuẩn

Trong thực tế, ta sẽ kiểm tra các giả định này bằng đồ thị phần dư, kiểm định thống kê.


5. Thực hành với Python (Scikit-Learn)

5.1. Huấn luyện mô hình hồi quy

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

X = df[['area', 'bedrooms', 'bathrooms']]  # ví dụ đặc trưng
y = df['price']  # biến mục tiêu

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = LinearRegression()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"MSE: {mse:.2f}")

5.2. Trích xuất trọng số mô hình

print(model.coef_)  # hệ số w
print(model.intercept_)  # hệ số b

6. Ưu và nhược điểm của Linear Regression

Ưu điểmNhược điểm
Dễ hiểu, giải thích đượcKhông mô hình hóa được quan hệ phi tuyến
Tính toán nhanhNhạy cảm với outlier
Cơ sở cho nhiều mô hình phức tạp hơnCần giả định tuyến tính đúng

7. Mở rộng

  • Polynomial Regression: biến đầu vào phi tuyến (đa thức)
  • Ridge/Lasso Regression: thêm regularization để tránh overfitting
  • Generalized Linear Models (GLMs): mở rộng để xử lý nhiều loại đầu ra

8. Tổng kết

  • Linear Regression là mô hình cơ bản nhất trong học máy có giám sát
  • Cần hiểu rõ công thức, giả định, cách tối ưu để dùng hiệu quả
  • Là nền tảng cho nhiều mô hình hiện đại như Neural Networks, GLMs,…

9. Bài tập

  1. Tải tập dữ liệu giá nhà (ví dụ: Boston Housing)
  2. Huấn luyện mô hình hồi quy tuyến tính với 3 đặc trưng bất kỳ
  3. Tính và so sánh MSE giữa tập huấn luyện và tập kiểm tra
  4. Trực quan hoá phần dư (residuals) và kiểm tra giả định tuyến tính

Bạn muốn tiếp tục bài 4: Phân loại tuyến tính với Logistic Regression không?
Hoặc mình có thể viết nội dung này thành giáo trình PDF, bài giảng slide, hoặc notebook thực hành mẫu nếu bạn cần.