許多問題都需要以機率估計做為輸出內容。邏輯迴歸是一種非常有效率的機制,可用來計算機率。實際上,您可以透過下列任一方式使用傳回的機率:
套用「現狀」。舉例來說,假設垃圾郵件預測模型採用 的輸入和輸出值是
0.932
,這表示可能存在93.2%
此電子郵件為垃圾郵件。轉換為二元類別,例如
True
或False
、Spam
或Not Spam
。
本單元著重介紹依原樣使用邏輯迴歸模型輸出內容。在 「分類」模組: 將這個輸出內容轉換為二進位類別
Sigmoid 函式
您可能會想知道,邏輯迴歸模型如何確保輸出值代表機率,並一律輸出介於 0 和 1 之間的值。事實上,有一系列稱為「邏輯函式」的函式,其輸出內容具有相同特性。標準邏輯函式 也稱為 S 函數 (sigmoid 表示「s 形」),則具有 公式:
\[f(x) = \frac{1}{1 + e^{-x}}\]
圖 1 顯示對應的 S 型函數圖表。
隨著輸入內容 x
持續增加,S 函數趨近函式的輸出結果
但從未達到 1
同樣地,隨著輸入值減少,S型函式輸出值會趨近 0
,但永遠不會達到 0
。
按這裡進一步瞭解 S 函數背後的數學原理
下表顯示當輸入值介於 –7 到 7 之間時,S型函式輸出值。請注意,當輸入值從負值變成正值時,S型曲線會以多快的速度趨近 0,以及當輸入值從負值變成正值時,S型曲線會以多快的速度趨近 1。
不過,無論輸入值的大小為何,輸出值一律會大於 0 且小於 1。
輸入 | sigmoid 輸出 |
---|---|
-7 | 0.001 |
-6 | 0.002 |
-5 | 0.007 |
-4 | 0.018 |
-3 | 0.047 版 |
-2 | 0.119 |
-1 | 0.269 |
0 | 0.50 |
1 | 0.731 |
2 | 0.881 |
3 | 0.952 |
4 | 0.982 |
5 | 0.993 |
6 | 0.997 |
7 | $0.999 美元 |
使用 S 函數轉換線性輸出
下列等式代表邏輯迴歸模型的線性元件:
\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]
其中:
- z 是線性方程式的輸出值,也稱為對數機率。
- b 是偏誤。
- w 值是模型學習到的權重。
- x 值是特定示例的特徵值。
為了取得邏輯迴歸預測結果,接著系統會將 z 值傳遞至 S 函數,會產生介於 0 和 1 之間的值 (機率):
\[y' = \frac{1}{1 + e^{-z}}\]
其中:
- y' 是邏輯迴歸模型的輸出內容。
- z 是線性輸出 (如上述公式中所示)。
按這裡進一步瞭解對數比率
在方程式 $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$ 中,z 稱為對數比率,因為如果您從下列 S 函數開始 (其中 $y$ 是邏輯迴歸模型的輸出值,代表機率):
$$y = \frac{1}{1 + e^{-z}}$$
然後求解 z:
$$ z = \log\left(\frac{y}{1-y}\right) $$
接著,z 的定義為兩種可能結果的機率比率對數:y 和 1 - y。
圖 2 說明如何使用這些計算將線性輸出轉換為邏輯迴歸輸出。
在圖 2 中,線性方程式會成為 S 函數的輸入內容,將直線彎曲成 S 形。請注意,線性方程式可以輸出非常大或非常小的 z 值,但 S 函數的輸出值 y' 一律介於 0 和 1 之間 (不含兩者)。例如: 左圖的 z 值為 -10,但 S 函數則是 右圖地圖,從 10 到 y 英寸值為 0.00004
練習:檢查您的理解程度
具有三個特徵的邏輯迴歸模型有下列偏誤: 重量:
\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]
請採用下列輸入值:
\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]
請回答以下兩個問題。
如上方步驟 1 所示,輸入值的對數為 1。 將 z 的值插入 S 函數中:
\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)