Thuật toán Linear Regression và Những ứng dụng thực tế
📘 1. Cơ sở lý thuyết thuật toán Linear Regression
1.1. Khái niệm:
-
Linear Regression (Hồi quy tuyến tính) là thuật toán dự đoán mối quan hệ tuyến tính giữa biến đầu vào (X) và biến đầu ra (Y).
-
Mục tiêu: Xây dựng đường thẳng tuyến tính sao cho khoảng cách giữa các điểm dữ liệu và đường thẳng là nhỏ nhất.
1.2. Hàm mất mát (Loss Function):
-
Hàm mất mát phổ biến nhất là Mean Squared Error (MSE):

1.3. Phương pháp Gradient Descent:
-
Gradient Descent là phương pháp tối ưu hóa để tìm giá trị tối ưu của β0\beta_0 và β1\beta_1.
-
Cập nhật tham số:

1.4. Hệ số xác định R2R^2:
1.5. Ưu điểm và nhược điểm:
| Ưu điểm | Nhược điểm |
|---|---|
| Dễ hiểu và triển khai | Nhạy cảm với outliers |
| Giải thích dễ dàng | Không hiệu quả với quan hệ phi tuyến |
| Hiệu suất tính toán nhanh | Giả định phân phối tuyến tính |
✅ 2. Ứng dụng thực tế của Linear Regression
Linear Regression được sử dụng trong các bài toán dự đoán có mối quan hệ tuyến tính, như:
🔥 2.1. Dự đoán giá nhà (Real Estate Pricing):
-
Dữ liệu: Diện tích, số phòng, vị trí.
-
Mục tiêu: Dự đoán giá bán nhà.
-
Input:
[diện tích, số phòng] -
Output:
Giá bán
Phương trình tuyến tính:
Giaˊ nhaˋ=β0+β1×Diện tıˊch+β2×Soˆˊ phoˋng\text{Giá nhà} = \beta_0 + \beta_1 \times \text{Diện tích} + \beta_2 \times \text{Số phòng}
🔥 2.2. Dự đoán doanh thu bán hàng (Sales Prediction):
-
Dữ liệu: Chi phí quảng cáo, số lượng sản phẩm bán ra.
-
Mục tiêu: Dự đoán doanh thu.
-
Input:
[chi phí quảng cáo, số lượng sản phẩm] -
Output:
Doanh thu
🔥 2.3. Dự đoán điểm thi học sinh (Student Score Prediction):
-
Dữ liệu: Số giờ học, điểm trung bình môn Toán, Anh.
-
Mục tiêu: Dự đoán điểm cuối kỳ.
Phương trình tuyến tính:
Điểm thi=β0+β1×Soˆˊ giờ học+β2×Điểm trung bıˋnh\text{Điểm thi} = \beta_0 + \beta_1 \times \text{Số giờ học} + \beta_2 \times \text{Điểm trung bình}
🔥 2.4. Dự đoán chi phí y tế (Medical Cost Prediction):
-
Dữ liệu: Tuổi, BMI, tiền sử bệnh.
-
Mục tiêu: Dự đoán chi phí y tế.
-
Input:
[tuổi, BMI, tiền sử bệnh] -
Output:
Chi phí y tế
🔥 2.5. Dự đoán nhu cầu tiêu thụ điện (Energy Consumption):
-
Dữ liệu: Nhiệt độ, giờ trong ngày, ngày trong tuần.
-
Mục tiêu: Dự đoán lượng điện tiêu thụ.
✅ 3. Mã nguồn thực tế: Dự đoán giá nhà bằng Linear Regression
# Import thư viện
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# Dữ liệu giả lập
data = {
'Area': [30, 45, 60, 75, 90],
'Price': [300, 450, 600, 750, 900]
}
df = pd.DataFrame(data)
# Chia dữ liệu
X = df[['Area']]
y = df['Price']
# Huấn luyện mô hình
model = LinearRegression()
model.fit(X, y)
# Hệ số hồi quy
print("Intercept:", model.intercept_)
print("Slope:", model.coef_[0])
# Dự đoán giá nhà diện tích 70m2
predicted_price = model.predict([[70]])
print(f"Giá nhà 70m2: {predicted_price[0]} triệu")
# Đánh giá mô hình
y_pred = model.predict(X)
print("MSE:", mean_squared_error(y, y_pred))
print("R^2:", r2_score(y, y_pred))
# Vẽ đồ thị
plt.scatter(X, y, color='blue', label='Dữ liệu thực tế')
plt.plot(X, y_pred, color='red', label='Đường hồi quy')
plt.xlabel('Diện tích (m2)')
plt.ylabel('Giá (triệu)')
plt.title('Mô hình Linear Regression')
plt.legend()
plt.grid()
plt.show()
✅ Tóm lại:
-
Linear Regression là thuật toán cơ bản, dễ hiểu và dễ triển khai.
-
Ứng dụng rộng rãi trong dự đoán dữ liệu có mối quan hệ tuyến tính.
-
Nên chú ý đến các giả định như: dữ liệu không có outliers quá lớn, quan hệ phải tuyến tính.