Chapter 2 - Ep.0: REGRESSION IN MACHINE LEARNING - bài toán hồi quy trong máy học

REGRESSION IN MACHINE LEARNING - bài toán hồi quy trong máy học


Hồi quy chính là một phương pháp thống kê để thiết lập mối quan hệ giữa một biến phụ thuộc và một nhóm tập hợp các biến độc lập. Ví dụ:


        điểm trung bình = điểm quá trình * 20% + điểm giữa kì * 30% + điểm đồ án * 50%

Ở ví dụ này, chúng ta đang thiết lập 1 mối quan hệ giữa "điểm quá trình", "điểm giữa kì" và "điểm đồ án" của một người với "điểm trung bình" của người đó. 3 biến màu vàngbiến độc lập và biến màu đỏbiến phụ thuộc.


Khác với bài toán phân loại, đầu ra của bài toán hồi quy là các giá trị thực hoặc liên tục.

Người ta thường chia bài toán hồi quy ra làm 2 loại chính:

* hồi quy tuyến tính (linear)

* hồi quy phi tuyến tính (non-linear)

Trong bài viết này, tôi sẽ trình bày về HỒI QUY TUYẾN TÍNH.


HỒI QUY TUYẾN TÍNH

+ Hồi quy tuyến tính đơn biến: là mô hình chỉ có 1 biến độc lập duy nhất.

+ Hồi quy tuyến tính đa biến: là mô hình có nhiều hơn 1 biến độc lập, là sự mở rộng của mô hình hồi quy đơn biến.


1. Hồi quy tuyến tính đơn biến:

Chìa khóa của bài toán hồi quy tuyến tính là tìm được một đường thẳng hồi quy nhất:


Đường thẳng hồi quy nhất là đường thẳng sao cho khoảng cách từ các điểm dữ liệu tới đường này là nhỏ nhất.

Giả sử chúng ta muốn dự đoán y từ x được cho như bảng dưới đây và đường thẳng hồi quy này có dạng: 

                    y = ax + b

Việc xác định đường thẳng này yêu cầu xác định được 2 giá trị: a và b (a gọi là hệ số chặn, b là độ dốc)

Ta tính được hai giá trị avg(x) = 5,5 và avg(y) = 8,3.

Tiếp theo, ta sẽ tính được 2 cột giá trị x - avg(x)y - avg(y) như sau:


Tiếp theo là hai cột [x - avg(x)] * [ y - avg(y)][x - avg(x)] * [x - avg(x)] như sau:         


Tính tổng các giá trị trong 2 cột này, ta được:      

sum(xy) = 122,5        sum(xx) = 82,5

Tiếp theo ta sẽ tính được giá trị của a và b dựa vào 2 giá trị sum ở trên: 

a = sum(xy) / sum(xx) = 122,5 / 82,5 = 1,484848

b = avg(y) - b * avg(x) = 8,3 - 1,484848 * 5,5 = 0,133333

Cuối cùng, đường thẳng hồi quy nhất của chúng ta như sau:

y = 1,484848x + 0.133333

Kết quả dự đoán lại dựa trên đường hồi quy này:

                                                phương sai             độ lệch chuẩn

Tổng kết, ta có bảng sau:



Và chúng ta có thể đánh giá thông qua các chỉ số :

MSE  = SSE / n (trong đó SSE = sum(độ lệch chuẩn), n là số lượng mẫu trong dữ liệu)

=> MSE = 1,220606

RMSE = sqrt(MSE)

=> RMSE = 0,34937

MAE = sum(abs(phương sai)) / n

=> MAE = 0,9

R^2 = 1 - [ sum(độ lệch chuẩn)  / sum([y-avg(y)]^2) ]

=> R^2 = 0.93711 

* R^2 là một chỉ số rất quan trọng trong hồi quy. Nó có thể hiểu như phần trăm mối liên hệ giữa biến x và biến y.

Cụ thể trong bài toán trên: biến y được mô tả ~93% bởi biến x, còn ~7% còn lại được giải thích bởi các biến ngoài mô hình và sai số ngẫu nhiên.

Chú ý: Càng đưa thêm nhiều biến vào mô hình, mặc dù chưa xác định biến đưa vào có ý nghĩa hay không thì giá trị R^2 cũng sẽ tăng. Lý do là khi càng đưa thêm biến giải thích vào mô hình thì sẽ càng khiến phần dư giảm xuống (vì bản chất những gì không giải thích được đều nằm ở phần dư), do vậy tăng thêm biến sẽ khiến phần sum(độ lệch chuẩn) giảm, trong khi sum([y-avg(y)]^2) không đổi, dẫn tới R^2 luôn luôn tăng.

Giá trị R^2 tăng khả năng giải thích của mô hình, nhưng bản chất thì lại không làm rõ được tầm quan trọng của biến đưa vào, do đó nếu dựa vào giá trị R^2 để đánh giá tính hiệu quả của mô hình sẽ dẫn đến tình huống không chính xác vì sẽ đưa quá nhiều biến không cần thiết, làm phức tạp mô hình.

Để ngăn chặn tình trạng như đã nêu trên, một phép đo khác về mức độ thích hợp được sử dụng thường xuyên hơn. Phép đo này gọi là R^2 hiệu chỉnh:

R^2 hiệu chỉnh = [R^2 * (n-1) - (k-1)] / (n-k)

(Với k là số tham số của mô hình, bằng số lượng biến độc lập cộng 1)

=> R^2 hc = [0.93711 * (10-1) - (2-1)] / (10 - 2) = 0.92925 (bé hơn R^2)

Trong các bài toán có nhiều biến độc lập, bạn nên cân nhắc sử dụng R^2 hiệu chỉnh thay vì R^2, chúng sẽ có khác biệt đấy.


2. Hồi quy tuyến tính đa biến:

Phương trình hồi quy tuyến tính đa biến có dạng:

                                    y = a0x0 + a1x1 + a2x2 + a3x3 + ...

Ví dụ dữ liệu mẫu như sau:

Ta có:



Nhiệm vụ của chúng ta tương tự, là tìm ra được bộ số {a0, a1, a2, a3}, tức là ma trận a, theo công thức sau:                   
          
Việc còn lại quá đơn giản với những thao tác tính toán ma trận thông thường, tôi sẽ không tính cụ thể ở đây.

Các chỉ số đánh giá cũng được tính toán tương tự như hồi quy tuyến tính đơn biến đã trình bày ở trên.

________________________________________________________

Bài hôm nay tôi xin dừng lại tại đây.

Mọi người không hiểu chỗ nào hay có đóng góp gì ở phần này cứ bình luận ở dưới  mình sẽ giải đáp hoặc cùng nhau học tập nha.

Cảm ơn mọi người rất nhiều...!  💚💙💛

Nhận xét