Nhiều bài toán yêu cầu kết quả ước tính xác suất. Hồi quy logistic là một cơ chế cực kỳ hiệu quả để tính xác suất. Thực tế bạn có thể sử dụng xác suất được trả về trong một trong hai cách sau hai cách:
Áp dụng trạng thái "nguyên trạng". Ví dụ: Nếu mô hình dự đoán thư rác lấy một email làm đầu vào và đầu ra giá trị
0.932
, điều này ngụ ý một xác suất93.2%
email là thư rác.Đã chuyển đổi thành danh mục nhị phân chẳng hạn như
True
hoặcFalse
,Spam
hoặcNot Spam
.
Mô-đun này tập trung vào việc sử dụng đầu ra của mô hình hồi quy logistic. Trong Mô-đun Phân loại, bạn sẽ tìm hiểu cách chuyển đổi dữ liệu đầu ra này thành một danh mục nhị phân.
Hàm sigmoid
Có thể bạn đang thắc mắc làm thế nào một mô hình hồi quy logistic có thể đảm bảo kết quả đầu ra biểu thị một xác suất, luôn xuất ra giá trị nằm trong khoảng từ 0 đến 1. Như vậy xảy ra, có một nhóm hàm được gọi là hàm logistic có đầu ra có cùng đặc điểm đó. Hàm logistic chuẩn, còn được gọi là hàm sigmoid (sigmoid có nghĩa là "hình chữ s"), có công thức:
\[f(x) = \frac{1}{1 + e^{-x}}\]
Hình 1 cho thấy đồ thị tương ứng của hàm sigmoid.
Khi đầu vào x
tăng lên thì đầu ra của hàm sigmoid sẽ tiến tới
nhưng không bao giờ đạt đến 1
. Tương tự, khi đầu vào giảm, sigmoid
phương thức đầu ra của hàm nhưng không bao giờ đạt được 0
.
Nhấp vào đây để xem thêm chi tiết về phép toán là hàm sigmoid
Bảng dưới đây trình bày các giá trị đầu ra của hàm sigmoid cho các giá trị đầu vào trong khoảng –7 đến 7. Chú ý tốc độ đến gần của sigmoid 0 để giảm giá trị đầu vào âm và tốc độ tiếp cận sigmoid 1 để tăng giá trị đầu vào dương.
Tuy nhiên, bất kể giá trị đầu vào lớn hay nhỏ, đầu ra sẽ luôn lớn hơn 0 và nhỏ hơn 1.
Đầu vào | Đầu ra Sigmoid |
---|---|
-7 | 0,001 |
-6 | 0,002 |
-5 | 0,007 |
-4 | 0,018 |
-3 | 0,047 |
-2 | 0,119 |
-1 | 0,269 |
0 | 0,5 |
1 | 0,731 |
2 | 0,881 |
3 | 0,952 |
4 | 0,982 |
5 | 0,993 |
6 | 0,997 |
7 | 0,999 |
Biến đổi đầu ra tuyến tính bằng hàm sigmoid
Phương trình sau đây biểu diễn thành phần tuyến tính của một lôgarit mô hình hồi quy:
\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]
trong đó:
- z là kết quả của phương trình tuyến tính, còn được gọi là tỷ lệ chênh lệch trong nhật ký.
- b là định kiến.
- Giá trị w là trọng số học được của mô hình.
- Giá trị x là giá trị tính năng cho một ví dụ cụ thể.
Để có được dự đoán hồi quy logit, giá trị z sau đó được chuyển đến hàm sigmoid, mang lại giá trị (xác suất) trong khoảng từ 0 đến 1:
\[y' = \frac{1}{1 + e^{-z}}\]
trong đó:
- y' là kết quả của mô hình hồi quy logit.
- z là đầu ra tuyến tính (như được tính trong phương trình trước đó).
Nhấp vào đây để tìm hiểu thêm về tỷ lệ chênh lệch nhật ký
Trong phương trình $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z được gọi là tỷ lệ chênh lệch nhật ký vì nếu bạn bắt đầu bằng hàm sigmoid sau (trong đó $y$ là kết quả của một hàm logistic mô hình hồi quy, biểu thị một xác suất):
$$y = \frac{1}{1 + e^{-z}}$$
Sau đó, giải cho z:
$$ z = \log\left(\frac{y}{1-y}\right) $$
Khi đó z được định nghĩa là log của tỷ lệ các xác suất trong hai kết quả có thể xảy ra là: y và 1 – y.
Hình 2 minh hoạ cách chuyển đổi đầu ra tuyến tính sang hồi quy logit đầu ra bằng các phép tính này.
Trong Hình 2, phương trình tuyến tính trở thành dữ liệu đầu vào cho hàm sigmoid, Thao tác này sẽ uốn đường thẳng thành hình chữ s. Lưu ý rằng phương trình tuyến tính có thể cho ra các giá trị z rất lớn hoặc rất nhỏ, nhưng đầu ra của sigmoid hàm y', luôn nằm trong khoảng từ 0 đến 1 và không bao gồm 0 và 1. Ví dụ: màu cam hình chữ nhật trên đồ thị bên trái có giá trị z là -10, nhưng hàm sigmoid trong đồ thị bên phải ánh xạ -10 thành y' giá trị 0,00004.
Bài tập: Kiểm tra kiến thức
Một mô hình hồi quy logistic có ba đặc điểm có độ chệch và trọng số:
\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]
Cho trước các giá trị đầu vào sau:
\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]
Hãy trả lời hai câu hỏi sau đây.
Như đã tính toán trong phần 1 ở trên, số lẻ log cho các giá trị đầu vào là 1. Cắm giá trị đó cho z vào hàm sigmoid:
\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)