You are on page 1of 4

Normal Equation cho Linear Regression 1|4

Bài: Normal Equation cho Linear Regression


Xem bài học trên website để ủng hộ Kteam: Normal Equation cho Linear Regression

Mọi vấn đề về lỗi website làm ảnh hưởng đến bạn hoặc thắc mắc, mong muốn khóa học mới, nhằm hỗ trợ cải thiện Website. Các bạn vui lòng phản hồi
đến Fanpage How Kteam nhé!

Dẫn nhập
Trong bài trước, chúng ta đã tìm hiểu về FEATURE NORMALIZE & GRADIENT DESCENT CHO MULTIVARIATE PROBLEM.

Ở bài này Kteam sẽ giới thiệu đến các bạn Normal Equation cho Linear Regression.

Nội dung

Để theo dõi bài này tốt nhất bạn cần có kiến thức về:

LẬP TRÌNH PYTHON CƠ BẢN


GIỚI THIỆU MACHINE LEARNING VÀ CÀI ĐẶT NUMPY
MA TRẬN VÀ VECTOR VỚI NUMPY
LINEAR REGRESSION VÀ HÀM hθ(x) CHO LINEAR REGRESSION.
THUẬT TOÁN GRADIENT DESCENT CHO LINEAR REGRESSION
FEATURE NORMALIZE & GRADIENT DESCENT CHO MULTIVARIATE PROBLEM

Trong bài này chúng ta sẽ cùng tìm hiểu về:

Giới thiệu Normal Equation


Công thức Normal Equation.
So sánh Normal Equation và Gradient Descent.
Trường hợp đặc biệt của Normal Equation.

Giới thiệu Normal Equation


Trong các bài trước Kteam đã hướng dẫn các bạn 1 phương pháp để tìm parameter Theta, đó là sử dụng thuật toán Gradient Descent. Tuy nhiên
vẫn còn một phương pháp khác để tìm ra Theta tối ưu: phương pháp Normal Equation (phương trình thông thường).

Với Normal Equation, chúng ta không cần dùng vòng lặp để tối ưu Theta từng bước (iteration) để tới được Theta tối ưu nhất, mà chỉ cần dùng duy
nhất 1 biểu thức để tìm trực tiếp Theta, không cần phải thực hiện Feature Normalize.

Công thức Normal Equation


Công thức toán học:

Trong đó:

: Ma trận chuyển vị của X nhân với ma trận X (kích thước = n x n)


: Ma trận khả nghịch của (kích thước = n x n)
: Là ma trận ngược của X nhân với y (kích thước = n x 1)

Lưu ý:

Copyright © Howkteam.com
Normal Equation cho Linear Regression 2|4

Đừng nhầm lẫn ma trận chuyển vị (transpose matrix) và ma trận khả nghịch (invert matrix) đã được đề cập trong bài MA TRẬN & VECTOR VỚI
NUMPY.

Ma trận chuyển vị sẽ chỉ đổi index của hàng và cột (A[i,j] sẽ chuyển thành A[j,i]).

Ma trận khả nghịch sẽ dùng các công thức toán học để tạo ra một ma trận hoàn toàn mới (bằng kích thước gốc) để khi nhân với ma trận cũ
sẽ có kết quả là 1 (ma trận với 1 trên đường chéo).

Thực hiện invert, transpose ma trận


Để thực hiện transpose ma trận (tạo ma trận chuyển vị), ta chỉ cần lấy attribute .T:

Để thực hiện invert ma trận (tạo ma trận khả nghịch), ta dùng hàm np.linalg.pinv(X):

XI = np.linalg.pinv(X)

Xây dựng Normal Equation


Đầu tiên ta tính :

import numpy as np
def NormEqn(X,y):
return X.T @ X

Sau đó invert tất cả:

import numpy as np
def NormEqn(X,y):
return np.linalg.pinv(X.T @ X)

Rồi nhân với là hoàn tất:

import numpy as np
def NormEqn(X,y):
return np.linalg.pinv(X.T @ X) @ (X.T @ y)

Sử dụng

Bài 7 - Resources

Để sử dụng, ta chỉ cần load data, dùng hàm NormEqn rồi predict kết quả, chỉ cần 4 dòng code

Copyright © Howkteam.com
Normal Equation cho Linear Regression 3|4

import numpy as np
from functions import *
[X, y] = Loadtxt(‘data.txt’)
Theta = NormEqn(X,y)
inp = np.array([1, 1650, 3])
predict = predict(inp, Theta)
print(‘%.2f$’%(predict))

So sánh Normal Equation và Gradient Descent


Gradient Normal
Descent Equation

Cần chọn alpha Không cần


và iter chọn alpha và
iter

Cần lặp nhiều Chỉ thực hiện 1


bước tối ưu bước

Độ phức tạp Độ phức tạp


O(kn2) O(n3), cần tìm
ma trận khả
nghịch

Hoạt động tốt Xử lí chậm với


với training set training set lớn
lớn (tìm ma trận
khả nghịch làm
chậm tốc độ
khá nhiều)

Vì thế với các training set nhỏ ta có thể dùng Normal Equation, nhưng với training set lớn, ta vẫn nên dùng Gradient Descent

Trường hợp đặc biệt


Với Normal Equation, chúng ta có 2 trường hợp khiến thuật toán không hoạt động được (do không tính được ma trận nghịch đảo):

m <= n: Lượng mẫu quá ít trong khi có quá nhiều feature (X): có thể khắc phục bằng cách giảm số feature hoặc dùng Regularization (đề cập
trong các bài sau)
Tồn tại các feature (X) tương tự nhau: ví dụ có 2 feature tương tự nhau là diện tích(đơn vị m2) và diện tích(đơn vị feet2): có thể khắc phục bằng
cách bỏ bớt 1 trong 2 feature.

Resources
Các bạn có thể download các file text được sử dụng trong bài viết tại:

Bài 7 - Resources

Kết luận
Qua bài này chúng ta đã cùng nhau tìm hiểu về Normal Equation cho Linear Regression.

Copyright © Howkteam.com
Normal Equation cho Linear Regression 4|4

Ở bài sau, Kteam sẽ TỔNG KẾT LINEAR REGRESSION.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách –
Không ngại khó”.

Copyright © Howkteam.com

You might also like