Những điều cơ bản về hồi quy tuyến tính

Học có giám sát với scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Cơ chế hồi quy

  • $y = ax + b$

    • Hồi quy tuyến tính đơn dùng một đặc trưng

      • $y$ = biến mục tiêu

      • $x$ = một đặc trưng

      • $a$, $b$ = tham số/hệ số của mô hình - độ dốc, hệ số chặn

  • Chọn $a$ và $b$ thế nào?

    • Xác định hàm lỗi cho mỗi đường thẳng

    • Chọn đường làm tối thiểu hàm lỗi

  • Hàm lỗi = hàm mất mát = hàm chi phí

Học có giám sát với scikit-learn

Hàm mất mát

biểu đồ phân tán

Học có giám sát với scikit-learn

Hàm mất mát

đường hồi quy chạy từ dưới trái lên trên phải, đi qua giữa các quan sát

Học có giám sát với scikit-learn

Hàm mất mát

các đường đỏ từ đường hồi quy đến từng quan sát

Học có giám sát với scikit-learn

Hàm mất mát

các đường đỏ biểu thị phần dư

Học có giám sát với scikit-learn

Hàm mất mát

mũi tên tô đậm phần dư dương, vì quan sát nằm trên đường hồi quy

Học có giám sát với scikit-learn

Bình phương tối thiểu thông thường

mũi tên chỉ đến một phần dư dưới đường hồi quy, biểu thị phần dư âm

$RSS = $ $\displaystyle\sum_{i=1}^{n}(y_i-\hat{y_i})^2$

Bình phương tối thiểu thông thường (OLS): tối thiểu hóa RSS

Học có giám sát với scikit-learn

Hồi quy tuyến tính trong không gian nhiều chiều

$$ y = a_{1}x_{1} + a_{2}x_{2} + b$$

  • Để khớp mô hình hồi quy tuyến tính ở đây:
    • Cần chỉ định 3 biến: $ a_1,\ a_2,\ b $
  • Ở không gian nhiều chiều:
    • Gọi là hồi quy đa biến
    • Phải chỉ định hệ số cho từng đặc trưng và biến $b$

$$ y = a_{1}x_{1} + a_{2}x_{2} + a_{3}x_{3} +... + a_{n}x_{n}+ b$$

  • scikit-learn hoạt động tương tự:
    • Truyền hai mảng: đặc trưng và mục tiêu
Học có giám sát với scikit-learn

Hồi quy tuyến tính dùng mọi đặc trưng

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

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
reg_all = LinearRegression()
reg_all.fit(X_train, y_train)
y_pred = reg_all.predict(X_test)
Học có giám sát với scikit-learn

Hệ số xác định (R-squared)

  • $R^2$: định lượng phương sai ở biến mục tiêu được giải thích bởi các đặc trưng

    • Giá trị từ 0 đến 1
  • $R^2$ cao:

đường hồi quy nghiêng 45 độ từ dưới trái lên trên phải và gần hầu hết các quan sát

 

 

  • $R^2$ thấp:

đường hồi quy chạy ngang, các quan sát phân tán xa đường

Học có giám sát với scikit-learn

R-squared trong scikit-learn

reg_all.score(X_test, y_test)
0.356302876407827
Học có giám sát với scikit-learn

Sai số bình phương trung bình và căn bậc hai của nó

$MSE = $ $\displaystyle\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y_i})^2$

  • $MSE$ được đo bằng đơn vị của biến mục tiêu, bình phương

 

$RMSE = $ $\sqrt{MSE}$

  • $RMSE$ đo theo cùng đơn vị với biến mục tiêu
Học có giám sát với scikit-learn

RMSE trong scikit-learn

from sklearn.metrics import root_mean_squared_error

root_mean_squared_error(y_test, y_pred)
24.028109426907236
Học có giám sát với scikit-learn

Ayo berlatih!

Học có giám sát với scikit-learn

Preparing Video For Download...