Linear Regression
Linear Regression là một thuật toán dùng để dự đoán một giá trị dựa trên một hoặc nhiều đầu vào (gọi là features, hay đặc trưng). Đây là một trong những mô hình đơn giản nhất trong Machine Learning, nhưng lại rất quan trọng vì nó giúp ta hiểu cách một mô hình AI được huấn luyện và sử dụng. Các mô hình AI tiên tiến hiện nay như GPT cũng đều có rất nhiều điểm tương đồng về mặt nguyên lý.
Feature (đặc trưng): Một thông tin đầu vào để mô hình dự đoán. Ví dụ: diện tích là một feature khi dự đoán giá nhà.
“Linear Regression” dịch sang tiếng Việt là hồi quy tuyến tính. Trong machine learning, chúng ta có 2 bài toán chính, là regression và classification. Từ “hồi quy” (regression) ám chỉ một loại bài toán: dự đoán một giá trị liên tục — như giá nhà, điểm số, doanh thu, mức lương. Điều này khác với bài toán phân loại (classification), nơi mô hình dự đoán một nhãn rời rạc như “spam / không spam” hay “chó / mèo”.
Regression (hồi quy): Dự đoán một con số, như giá nhà hoặc điểm thi.
Classification (phân loại): Dự đoán một nhãn, như spam hoặc không spam.
Định nghĩa: Linear Regression
Hiểu một cách đơn giản nhất, Linear Regression là việc vẽ một đường thẳng để mô tả mối quan hệ giữa input và output. Mô hình cố gắng tìm một đường thẳng “đi xuyên qua” đám dữ liệu sao cho nó mô tả được xu hướng chung.
Đường thẳng đó được biểu diễn bằng phương trình. Hãy chú ý đến hai thành phần mô hình cần học: trọng số và bias:
Trong đó:
- : đặc trưng đầu vào (feature). Từ đây trở đi, ta dùng từ đặc trưng để chỉ input.
- (đọc là “y mũ”): giá trị mà mô hình dự đoán.
- : trọng số (weight, hay slope) — quyết định độ dốc của đường thẳng.
- : bias (hay intercept) — giá trị của khi , quyết định vị trí đường thẳng cắt trục y.
và được gọi là parameters (tham số) của mô hình. Hình dáng và vị trí của đường thẳng được xác định hoàn toàn bởi hai con số này. Mỗi bộ khác nhau cho ta một đường thẳng khác nhau.
Dữ liệu cung cấp đầu vào và đáp án thật; điều mô hình phải tìm chính là bộ tham số. Với bài toán dự đoán điểm thi, trọng số quyết định điểm dự đoán thay đổi bao nhiêu khi số giờ ôn tập tăng một giờ, còn bias quyết định mức điểm dự đoán khi số giờ bằng 0. Thay một trong hai, ta thay đổi cách mô hình dự đoán cho học sinh.
Ý tưởng cốt lõi của việc huấn luyện AI: Với hầu hết mô hình AI được huấn luyện hiện nay, mục tiêu là tìm bộ tham số tối ưu theo hàm mục tiêu đã chọn, để mô hình dự đoán hoặc tạo kết quả tốt trên dữ liệu mới. Linear Regression bắt đầu với hai tham số và ; neural network có thể có hàng triệu hoặc hàng tỷ tham số.
Weight (trọng số): Hệ số nhân với input; trong mô hình này, nó quyết định độ dốc của đường dự đoán.
Bias: Phần cộng thêm vào kết quả, giúp đường dự đoán không bắt buộc đi qua gốc tọa độ.
Parameter (tham số): Con số mô hình học từ dữ liệu, chẳng hạn weight và bias.
Trong công cụ dưới đây, mỗi chấm là một học sinh với số giờ ôn tập và điểm thi thang 10. Đây là dữ liệu giả lập để khám phá một bài toán thực tế. Hãy thử giữ bias cố định rồi thay trọng số, sau đó làm ngược lại để thấy mỗi tham số điều khiển điều gì.
Dự đoán điểm thi từ số giờ ôn tập
Mỗi chấm là một học sinh: số giờ ôn tập và điểm thi theo thang 10. Kéo w và b để thử một cách dự đoán khác.
Dữ liệu giả lập cho bài toán học tập. Đường màu cam là điểm mô hình dự đoán.
Vuốt ngang để xem hết biểu đồ →
Linear Regression không tự giới hạn dự đoán trong khoảng 0–10. Phần đường vượt thang điểm được ẩn khỏi biểu đồ, nhưng vẫn được tính vào MSE.
Đọc biểu đồ: Trục ngang là số giờ ôn tập, trục dọc là điểm thi. Chấm xanh là điểm của học sinh trong dữ liệu; đường cam là điểm mô hình dự đoán. Kéo làm thay đổi độ dốc, kéo nâng hoặc hạ cả đường dự đoán.
Ví dụ trực giác
Hãy bắt đầu với hai ví dụ quen thuộc để cảm nhận ý tưởng.
Ví dụ 1: Dự đoán điểm thi từ số giờ học. Đầu vào (x) là số giờ học, đầu ra (y) là điểm thi. Trực giác cho thấy: học càng nhiều thì điểm thường càng cao. Linear Regression sẽ học một đường thẳng đi lên thể hiện mối quan hệ “học nhiều hơn → điểm cao hơn”.
Ví dụ 2: Dự đoán giá nhà từ diện tích. Đầu vào là diện tích nhà, đầu ra là giá nhà. Nhà rộng hơn thường có giá cao hơn, nên đường thẳng cũng đi lên.
Trong cả hai trường hợp, dữ liệu thật không nằm gọn trên một đường thẳng — chúng là một đám điểm rải rác. Việc của Linear Regression là tìm đường thẳng mô tả tốt nhất xu hướng chung của đám điểm đó.
Huấn luyện mô hình Linear Regression
Với mô hình , “huấn luyện” thực chất là đi tìm hai con số:
- — khi tăng 1 đơn vị thì
ythay đổi như thế nào (độ dốc). - — giá trị dự đoán khi .
Lấy ví dụ điểm thi, một bộ tham số có thể là và , cũng là bộ mặc định trong công cụ:
Cách đọc kết quả này rất trực quan:
- Ôn tập thêm 1 giờ → điểm dự đoán tăng 0.7 điểm, khi giữ nguyên mô hình (đó là ).
- Không ôn tập giờ nào () → điểm dự đoán là 2 điểm (đó là ).
Với một học sinh ôn tập 4 giờ:
Đây là dự đoán của mô hình, không phải khẳng định học thêm một giờ chắc chắn làm điểm thật tăng đúng 0.7. Dữ liệu thể hiện mối liên hệ; riêng công thức này chưa chứng minh quan hệ nhân quả.
Lý do ta gọi linear regression là mô hình machine learning là vì và không phải do con người tính toán bằng tay, mà do mô hình tự tìm ra từ dữ liệu. Phần tiếp theo sẽ giải thích mô hình “tự tìm ra” bằng cách nào.
Hàm mất mát (Loss function)
Hãy tưởng tượng bạn vẽ thử ba, bốn đường thẳng khác nhau qua đám điểm dữ liệu. Nhìn bằng mắt, nhiều đường trông đều “tạm ổn”. Vậy làm sao máy tính biết đường nào tốt hơn một cách định lượng?
Ta cần một con số đo lường mức độ sai của mô hình. Với mỗi điểm dữ liệu, sai số được tính đơn giản:
Nhưng một điểm thì chưa đủ — ta có hàng trăm, hàng nghìn điểm. Ta cần một hàm gộp tất cả sai số lại thành một con số tổng thể hiện “mô hình này sai bao nhiêu”. Hàm đó gọi là Loss Function (hàm mất mát).
Loss function (hàm mất mát): Cách biến mức sai của dự đoán thành một con số để hướng dẫn mô hình học.
Loss function phổ biến nhất cho Linear Regression là Mean Squared Error (MSE) — sai số bình phương trung bình:
MSE: Trung bình các sai số đã bình phương. Dự đoán lệch càng xa thì bị phạt càng nặng.
Giải thích từng thành phần:
- : giá trị thật của điểm thứ
i. - : giá trị mô hình dự đoán cho điểm thứ
i. - : sai số tại điểm đó (residual).
- : cộng dồn qua toàn bộ điểm dữ liệu.
Tại sao phải bình phương sai số? Có ba lý do quan trọng:
- Tránh triệt tiêu lỗi âm/dương. Nếu một điểm dự đoán cao hơn thực tế (lỗi âm) và một điểm thấp hơn (lỗi dương), khi cộng trực tiếp chúng có thể triệt tiêu nhau và cho cảm giác “không sai”, dù thực ra cả hai đều sai. Bình phương khiến mọi sai số đều dương.
- Phạt lỗi lớn mạnh hơn. Lỗi 2 bị phạt thành 4, nhưng lỗi 10 bị phạt thành 100. Mô hình sẽ ưu tiên tránh những sai sót lớn.
- Giúp đạo hàm dễ tính. Hàm bình phương có đạo hàm rất gọn, điều này cực kỳ quan trọng cho bước tối ưu phía sau.
Nhược điểm: Vì phạt lỗi lớn rất nặng, MSE nhạy với outlier (điểm bất thường). Chỉ một vài điểm dị thường cũng có thể kéo đường hồi quy lệch đi đáng kể.
Outlier (điểm bất thường): Mẫu nằm khác xa phần lớn dữ liệu, như một căn nhà có giá cao bất thường so với diện tích.
Quy ước loss: Bài và playground dùng MSE với hệ số , giống các ví dụ code. Một số tài liệu dùng để đạo hàm gọn hơn. Hệ số không đổi nghiệm tối ưu, nhưng làm gradient và bước cập nhật nhỏ đi một nửa nếu giữ nguyên learning rate.
Ví dụ, một học sinh ôn tập 4 giờ và đạt 5 điểm. Với dự đoán 4.8 điểm ở trên, đóng góp của bạn ấy vào tổng sai số bình phương là:
Trong công cụ, các đoạn nét đứt biểu diễn sai số của từng học sinh. MSE lấy tổng các sai số bình phương rồi chia cho số học sinh.
Dự đoán điểm thi: sai số lớn hay nhỏ?
Mỗi chấm là một học sinh. Kéo w và b để xem điểm dự đoán lệch bao nhiêu so với điểm thi của từng bạn.
Dữ liệu giả lập cho bài toán học tập. Đường màu cam là điểm mô hình dự đoán.
Vuốt ngang để xem hết biểu đồ →
Linear Regression không tự giới hạn dự đoán trong khoảng 0–10. Phần đường vượt thang điểm được ẩn khỏi biểu đồ, nhưng vẫn được tính vào MSE.
Đường nét đứt biểu diễn sai số giữa điểm thi thật và điểm dự đoán.
Giờ ta đã có cách đo độ sai, mục tiêu trở nên rõ ràng:
Linear Regression tìm bộ tham số và sao cho MSE nhỏ nhất.
Viết gọn lại:
Đọc công thức: nghĩa là “tìm các giá trị làm biểu thức nhỏ nhất”. Dấu sao trong chỉ bộ tham số tối ưu, không phải phép nhân.
Ý tưởng này không chỉ đúng với Linear Regression. Nó là bức tranh lớn của gần như toàn bộ Machine Learning:
Gradient Descent
Ta đã biết mục tiêu (làm MSE nhỏ nhất), nhưng cách tìm ra và để MSE nhỏ nhất thì sao? Thuật toán phổ biến nhất là Gradient Descent.
Gradient Descent: Cách giảm loss từng bước bằng cách điều chỉnh tham số ngược hướng gradient.
Hãy hiểu bằng trực giác trước khi nhìn công thức:
- Hãy tưởng tượng giá trị loss như độ cao của một thung lũng. Mỗi vị trí ứng với một độ cao. Ta muốn đi tới đáy thung lũng — nơi loss thấp nhất.
- Mô hình bắt đầu ở một vị trí ngẫu nhiên trên sườn dốc.
- Gradient (đạo hàm) cho biết hướng đi lên. Đi ngược lại gradient chính là hướng đi xuống, làm loss giảm nhanh nhất.
- Learning rate (ký hiệu , đọc là “alpha”) quyết định mỗi bước đi dài hay ngắn.
Gradient: Các đạo hàm cho biết loss nhạy thế nào với từng tham số. Hướng gradient là hướng loss tăng nhanh nhất tại vị trí hiện tại.
Learning rate (tốc độ học): Hệ số quyết định bước điều chỉnh tham số lớn hay nhỏ.
Công thức cập nhật tham số sau mỗi bước:
Trong đó chính là learning rate. Ta lặp lại quá trình này hàng trăm hoặc hàng nghìn lần. Mỗi lần lặp, loss giảm dần cho đến khi gần như không đổi nữa — lúc đó ta nói mô hình đã hội tụ (converge).
Convergence (hội tụ): Trạng thái tham số hoặc loss thay đổi rất ít qua các bước học; chưa chắc đã là kết quả tốt nhất có thể.
Tại sao learning rate lại quan trọng đến vậy?
- Quá lớn: mỗi bước nhảy quá xa, loss nhảy lung tung, có thể vọt qua đáy thung lũng và không bao giờ hội tụ.
- Quá nhỏ: mỗi bước quá ngắn, mô hình học rất chậm, tốn rất nhiều vòng lặp để hội tụ.
- Vừa phải: loss giảm đều và ổn định xuống đáy.
Learning rate là một trong những hyperparameter đầu tiên bạn sẽ phải tinh chỉnh khi làm Machine Learning thực tế.
Hyperparameter (siêu tham số): Cấu hình ta chọn cho quá trình học, như learning rate; khác với weights được học từ dữ liệu.
Đọc công thức cập nhật: và là gradient của loss theo từng tham số. Cả hai được tính từ cùng bộ tham số cũ, rồi mới cập nhật.
Để nhìn rõ một bước đi xuống, công cụ tiếp theo chỉ minh họa một hàm loss đơn giản theo một tham số. Đây là ví dụ riêng về cơ chế Gradient Descent; hai biểu đồ điểm thi phía trên vẫn dùng MSE từ dữ liệu học sinh.
Thử từng bước Gradient Descent
Giữ
Learning rate nhỏ: mô hình đi xuống ổn định nhưng khá chậm.
Multi Linear Regression
Ở các ví dụ trên, mô hình chỉ nhìn vào số giờ ôn tập để dự đoán điểm thi. Nhưng hai học sinh ôn cùng số giờ vẫn có thể làm số bài luyện tập khác nhau. Nếu muốn đưa thêm thông tin này vào mô hình, ta cần nhiều hơn một feature.
Đó là Multi Linear Regression, thường được gọi chính xác là Multiple Linear Regression — hồi quy tuyến tính với nhiều đặc trưng đầu vào.
Multiple Linear Regression: Vẫn dự đoán một giá trị liên tục, nhưng dùng nhiều features cùng lúc. Mỗi feature có một trọng số riêng; mô hình còn có một bias chung.
Từ một input đến nhiều input
Với hai features, công thức trở thành:
Trong bài toán điểm thi:
- : số giờ ôn tập.
- : số bài luyện tập đã làm.
- : mức thay đổi của điểm dự đoán khi tăng một giờ ôn tập, giữ số bài luyện tập không đổi.
- : mức thay đổi của điểm dự đoán khi làm thêm một bài luyện tập, giữ số giờ ôn tập không đổi.
- : điểm mô hình dự đoán khi cả hai input bằng 0.
Giả sử một bộ tham số minh họa là , , . Với học sinh ôn 4 giờ và làm 20 bài:
Mô hình dự đoán 6 điểm. Nếu số giờ vẫn là 4 nhưng số bài tăng từ 20 lên 30, điểm dự đoán tăng thêm:
Đọc ý nghĩa của từng trọng số
Mỗi trọng số cho biết khi feature tương ứng tăng 1 đơn vị, dự đoán thay đổi bao nhiêu, nếu các feature khác giữ nguyên. Trong ví dụ trên, nghĩa là thêm một giờ ôn tập làm điểm dự đoán tăng ; còn nghĩa là thêm một bài luyện tập làm điểm dự đoán tăng .
Trọng số cũng có thể âm. Giả sử ta thêm feature là số giờ mất tập trung trong lúc ôn tập, và mô hình minh họa có công thức:
Ở đây, . Nếu số giờ mất tập trung tăng từ lên , trong khi giờ ôn tập và số bài luyện tập giữ nguyên, điểm dự đoán sẽ giảm . Feature tăng nhưng output dự đoán giảm là ý nghĩa của trọng số âm trong mô hình này.
Dấu của trọng số: Weight dương nghĩa là feature tăng thì dự đoán tăng; weight âm nghĩa là feature tăng thì dự đoán giảm. Weight bằng nghĩa là feature đó không trực tiếp làm thay đổi dự đoán trong công thức.
Vậy weight lớn hơn có nghĩa là feature quan trọng hơn không? Trực giác là độ lớn của weight càng lớn thì cùng một mức tăng của feature càng làm dự đoán thay đổi nhiều. Ta xét giá trị tuyệt đối: weight tạo mức thay đổi lớn hơn weight , nhưng theo hướng giảm.
Tuy nhiên, hãy chú ý đơn vị đo. Trong ví dụ này, ta không thể chỉ nhìn rồi kết luận giờ học quan trọng gấp năm lần số bài luyện tập: một giờ và một bài là hai lượng khác nhau. Nếu đổi giờ học sang phút, weight tương ứng sẽ đổi từ thành , dù mô hình vẫn đưa ra cùng một dự đoán.
Những trọng số này mô tả mối liên hệ mô hình học được từ dữ liệu. Chẳng hạn, hệ số âm của giờ mất tập trung cho biết mô hình dự đoán điểm thấp hơn khi giá trị đó tăng; riêng hệ số này chưa chứng minh được quan hệ nguyên nhân và kết quả.
Mô hình học những gì?
Với features, ta viết tổng quát:
là giá trị feature thứ của mẫu thứ . Mô hình cần học trọng số và một bias, thay vì chỉ một trọng số và một bias.
Mục tiêu vẫn là tìm bộ tham số làm MSE nhỏ nhất:
Gradient Descent vẫn chạy theo cùng trình tự: dự đoán → tính loss → tính gradient → cập nhật. Chỉ khác là giờ ta tính gradient và cập nhật từng trọng số cùng với bias:
Với một feature, ta có đường thẳng; hai features tạo một mặt phẳng trong không gian ba chiều. Nhiều features hơn tạo một siêu phẳng.
Code Linear Regression với scikit-learn
Trong thực tế, bạn hiếm khi tự code thuật toán từ đầu — thư viện scikit-learn đã làm sẵn. Đây là một ví dụ tối thiểu nhưng đầy đủ (dữ liệu giả lập số giờ học → điểm thi):
import numpy as npfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error, mean_absolute_error, r2_scoreimport matplotlib.pyplot as plt
# 1. Chuẩn bị dữ liệunp.random.seed(42)X = np.random.rand(100, 1) * 10 # số giờ học (0-10 giờ)y = 0.7 * X.squeeze() + 2 + np.random.uniform(-0.5, 0.5, size=100)# Điểm thi giả lập trên thang 10, cùng quan hệ với playground
# 2. Chia train/test (80/20)X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)
# 3. Train modelmodel = LinearRegression()model.fit(X_train, y_train)
# 4. Predict trên tập testy_pred = model.predict(X_test)
# 5. Đánh giámse = mean_squared_error(y_test, y_pred)rmse = np.sqrt(mse)mae = mean_absolute_error(y_test, y_pred)r2 = r2_score(y_test, y_pred)
print(f"w (slope): {model.coef_[0]:.3f}")print(f"b (intercept): {model.intercept_:.3f}")print(f"RMSE: {rmse:.3f}")print(f"MAE: {mae:.3f}")print(f"R²: {r2:.3f}")Train/test split: Chia dữ liệu thành phần để học (train) và phần giữ riêng để kiểm tra trên mẫu chưa học (test).
MAE / RMSE: MAE là trung bình độ lệch tuyệt đối; RMSE là căn bậc hai của MSE. Cả hai cùng đơn vị với giá trị cần dự đoán.
R²: Thước đo so với cách luôn dự đoán trung bình của tập đánh giá: 1 là khớp hoàn toàn, 0 ngang mốc đó, và có thể âm.
Khi chạy, mô hình sẽ tìm được và , gần với quy luật tạo dữ liệu:
Nhiễu: là phần chênh lệch ngẫu nhiên, ở đây nằm từ −0.5 đến 0.5 điểm. Hai học sinh ôn cùng số giờ vẫn có thể đạt điểm khác nhau.
Đây là một cách kiểm tra hữu ích: nếu biết quy luật tạo dữ liệu, hãy xem mô hình có tìm lại được các tham số gần với quy luật đó không.
Code Linear Regression từ đầu bằng NumPy
Phần này không bắt buộc, nhưng cực kỳ đáng giá: tự viết Gradient Descent bằng NumPy để thấy mô hình “học” thực sự diễn ra như thế nào.
import numpy as np
# Dữ liệunp.random.seed(42)X = np.random.rand(100) * 10y = 0.7 * X + 2 + np.random.uniform(-0.5, 0.5, size=100)
# Khởi tạo tham sốw = 0.0b = 0.0lr = 0.01 # learning raten = len(X)
# Training loopfor epoch in range(1000): # Dự đoán y_pred = w * X + b
# Tính loss (MSE) loss = np.mean((y - y_pred) ** 2)
# Tính gradient grad_w = (-2 / n) * np.sum(X * (y - y_pred)) grad_b = (-2 / n) * np.sum(y - y_pred)
# Update tham số w = w - lr * grad_w b = b - lr * grad_b
if epoch % 100 == 0: print(f"Epoch {epoch}: loss={loss:.4f}, w={w:.3f}, b={b:.3f}")
print(f"\nKết quả cuối: w={w:.3f}, b={b:.3f}")Hãy để ý: ban đầu , , mô hình dự đoán 0 điểm cho mọi học sinh. Qua các lần cập nhật, loss giảm và , tiến gần về và . Đó chính là quá trình tìm bộ tham số bằng Gradient Descent.
Scikit-learn giúp ta dùng nhanh, nhưng tự code từ đầu giúp ta hiểu training thực sự diễn ra như thế nào. Khi sau này gặp Neural Network, bạn sẽ nhận ra nó cũng chỉ là phiên bản phức tạp hơn của vòng lặp này.
Dùng AI để code Linear Regression
Bạn hoàn toàn có thể nhờ ChatGPT hay Claude viết code Linear Regression. Nhưng giá trị của một AI Engineer nằm ở chỗ biết kiểm tra code AI tạo ra, chứ không phải copy–paste mù quáng. Hãy luôn rà soát những điểm sau:
- Có chia train/test không, hay đang đánh giá trên chính dữ liệu đã train?
- Có data leakage không (ví dụ chuẩn hóa dữ liệu trước khi split)?
- Metric có đúng cho regression không? Không dùng accuracy cho hồi quy.
- Có chuẩn hóa dữ liệu nếu các đặc trưng khác thang đo không?
- Có kiểm tra outlier không?
- Có so sánh với một baseline đơn giản không (ví dụ: luôn dự đoán giá trị trung bình)?
- Có visualize predicted vs actual để mắt người kiểm tra không?
Data leakage (rò rỉ dữ liệu): Thông tin từ dữ liệu cần giữ riêng lọt vào quá trình học, khiến kết quả đánh giá trông tốt hơn thực tế.
Metric (thước đo đánh giá): Con số dùng để đánh giá chất lượng dự đoán, chẳng hạn MAE hoặc RMSE.
Baseline: Mô hình đơn giản làm mốc so sánh để biết phương pháp phức tạp hơn có cải thiện hay không.
Một prompt mẫu sẽ buộc AI trình bày rõ ràng và tự chỉ ra lỗi thường gặp:
Hãy viết code Python dùng scikit-learn để train Linear Regression cho bài toándự đoán giá nhà. Code cần có train/test split, đánh giá bằng MAE, RMSE, R2, vàvẽ biểu đồ predicted vs actual. Sau đó hãy giải thích từng bước và chỉ ranhững lỗi thường gặp.Mini project
Project 1: Dự đoán giá nhà. Input: số phòng, vị trí, tuổi nhà. Output: giá nhà. Mục tiêu: train Linear Regression, đánh giá bằng RMSE và R², visualize predicted vs actual, rồi phân tích xem đặc trưng nào ảnh hưởng mạnh nhất đến giá (nhìn vào độ lớn của các hệ số , nhớ chuẩn hóa dữ liệu trước khi so sánh). Xem notebook mẫu để thực hành.
Project 2: Dự đoán điểm thi. Input: số giờ học, số bài luyện tập, số lần nghỉ học. Output: điểm thi. Mục tiêu: hiểu quan hệ tuyến tính và giải thích hệ số — ví dụ “mỗi lần nghỉ học làm điểm giảm bao nhiêu”. Đây là bài tập tuyệt vời để luyện kỹ năng diễn giải mô hình. Bạn có thể tham khảo notebook mẫu để thực hành.
Tóm tắt
- Linear Regression dùng để dự đoán giá trị liên tục (giá nhà, điểm số, doanh thu…).
- Mô hình học tham số và để vẽ 1 đường thằng (hoặc 1 mặt siêu phẳng) làm loss nhỏ nhất.
- MSE là loss function phổ biến nhất, nhưng nhạy với outlier.
- Có thể tối ưu bằng Gradient Descent hoặc Normal Equation.
- Đây là model baseline quan trọng và là nền tảng để hiểu mọi mô hình Machine Learning phức tạp hơn.
Ôn tập
Làm 4 câu trắc nghiệm, 1 câu điền số và 2 câu tự luận ngắn. Trắc nghiệm và câu điền số được kiểm tra tự động; câu tự luận có đáp án gợi ý để bạn tự đối chiếu.