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àng là biến độc lập và biến màu đỏ là 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) và y - avg(y) như sau:
Tiếp theo là hai cột [x - avg(x)] * [ y - avg(y)] và [x - avg(x)] * [x - avg(x)] như sau:
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ó:
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
Đăng nhận xét