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∗)=argminw,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:
- Linearity: Mối quan hệ giữa đầu vào và đầu ra là tuyến tính
- Independence: Các mẫu dữ liệu độc lập
- Homoscedasticity: Phương sai của sai số là không đổi
- 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ểm | Nhược điểm |
---|---|
Dễ hiểu, giải thích được | Không mô hình hóa được quan hệ phi tuyến |
Tính toán nhanh | Nhạy cảm với outlier |
Cơ sở cho nhiều mô hình phức tạp hơn | Cầ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
- Tải tập dữ liệu giá nhà (ví dụ: Boston Housing)
- Huấn luyện mô hình hồi quy tuyến tính với 3 đặc trưng bất kỳ
- Tính và so sánh MSE giữa tập huấn luyện và tập kiểm tra
- 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.
Leave a Comment