Tổng kết Linear Regression
Machine Learning cơ bản với NumPy

Danh sách bài học
Tổng kết Linear Regression
Dẫn nhập
Trong bài trước, chúng ta đã tìm hiểu về NORMAL EQUATION CHO LINEAR REGRESSION.
Ở bài này Kteam sẽ Tổng kết 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
- NORMAL EQUATION CHO LINEAR REGRESSION
Trong bài này chúng ta sẽ tổng kết về:
- Mục đích Linear Regression.
- Hàm hθ(x) cho Linear Regression.
- Hàm J(θ) cho Linear Regression.
- Thuật toán Gradient Descent.
- Normal Equation cho Linear Regression.
- Những lưu ý cuối cùng.
Mục đích Linear Regression
Linear Regression là thuật toán Machine Learning để dự đoán kết quả từ các feature (tính chất của input). Kết quả và các feature có mối quan hệ tuyến tính, hoặc gần tuyến tính (nằm trên đường thẳng).
Linear Regression sẽ tìm đường thẳng phù hợp để “fit”.
Hàm hθ(x) cho Linear Regression
Công thức toán học
hθ(x) với Numpy
Chỉ cần thực hiện nhân 2 ma trận (thực hiện với 1 example, X * Theta với nhiều example):
h= X @ Theta
Hàm J(θ) cho Linear Regression
Hàm J(θ) cho biết độ “phù hợp” của đường thẳng đã tìm so với training set.
Công thức toán học
J(θ) với Numpy
def computeCost(X,y,Theta):
predicted = predict(X,Theta)
sqr_error = (predicted - y)**2
sum_error = np.sum(sqr_error)
m = np.size(y)
J = (1/(2*m))*sum_error
return J
Công thức vectorize
J(θ) vectorize với Numpy
def computeCost_Vec(X,y,Theta):
error = predict(X,Theta) - y
m = np.size(y)
J = (1/(2*m))*np.transpose(error)@error
return J
Thuật toán Gradient Descent
Thuật toán Gradient Descent dùng để tìm bộ số Theta phù hợp để điều chỉnh đường thẳng cho phù hợp với training set.
Pseudo code
Repeat{
Theta = Theta – (alpha/m)*(X.T * (h - y))
}
Gradient Descent với Numpy
def GradientDescent(X,y,alpha=0.02,iter=5000):
theta = np.zeros(np.size(X,1))
J_hist = np.zeros(iter)
m = np.size(y)
X_T = np.transpose(X)
pre_cost = computeCost(X,y,theta)
for i in range(0,iter):
#printProgressBar(i,iter)
error = predict(X,theta) – y
#Core code of Gradient Descent
theta = theta - (alpha/m)*(X_T @ error)
cost = computeCost(X,y,theta)
if np.round(cost,15) == np.round(pre_cost,15):
print('Reach optima at I = %d ; J = %.6f'%(i,cost))
J_hist[i:] = cost
break
pre_cost = cost
J_hist[i] = cost
yield theta
yield J_hist
Normal Equation
Với Normal Equation, ta không cần phải thực hiện lặp vẫn tìm được Theta.
Công thức toán học
Normal Equation với Numpy
def NormEqn(X,y):
return np.linalg.pinv(X.T @ X) @ (X.T @ y)
Lưu ý chung về Linear Regression
Linear Regression chỉ hoạt động tốt nếu một chuyên gia về lĩnh vực cần học (ví dụ: bất động sản) có thể dự đoán được kết quả. Nếu một chuyên gia bất động sản chỉ có diện tích đất sẽ rất khó để đoán giá (vì còn phụ thuộc vào vị trí, mặt tiền…). Linear Regression cũng vậy.
Kết luận
Qua bài này chúng ta đã Tổng kết Linear Regression.
Ở bài sau, Kteam sẽ GIỚI THIỆU LOGISTIC 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ó”.
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Tổng kết Linear Regression dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Nội dung bài viết
Khóa học
Machine Learning cơ bản với NumPy
Với mục đích giới thiệu đến mọi người về Machine Learning cũng như tạo điểm khởi đầu cho các bạn mới, muốn tham gia và tìm hiểu ban đầu về lĩnh vực khá hot này. Cùng Kteam tìm hiểu về Machine Learning cơ bản với ngôn ngữ Python.
Thông qua khóa học MACHINE LEARNING VỚI NUMPY, Kteam sẽ hướng dẫn các kiến thức cơ bản của thuật toán Machine Learning để các bạn có thể tạo ra những sản phẩm Machine Learning của riêng mình.
Đánh giá
