邏輯迴歸:使用 S 函數計算機率

許多問題都需要以機率估計做為輸出內容。邏輯迴歸是一種非常有效率的機制,可用來計算機率。實際上,您可以透過下列任一方式使用傳回的機率:

  • 套用「現狀」。舉例來說,假設垃圾郵件預測模型採用 的輸入和輸出值是 0.932,這表示可能存在 93.2% 此電子郵件為垃圾郵件。

  • 轉換為二元類別,例如 TrueFalseSpamNot Spam

本單元著重介紹依原樣使用邏輯迴歸模型輸出內容。在 「分類」模組: 將這個輸出內容轉換為二進位類別

Sigmoid 函式

您可能會想知道,邏輯迴歸模型如何確保輸出值代表機率,並一律輸出介於 0 和 1 之間的值。事實上,有一系列稱為「邏輯函式」的函式,其輸出內容具有相同特性。標準邏輯函式 也稱為 S 函數 (sigmoid 表示「s 形」),則具有 公式:

\[f(x) = \frac{1}{1 + e^{-x}}\]

圖 1 顯示對應的 S 型函數圖表。

以笛卡兒座標平面繪製的 Sigmoid (形狀) 曲線
         都以起點為中心
圖 1:S 函數的圖形。曲線接近 0 因為 x 值減少到負無限大,而 1 作為 x 值會朝無限大的方向增加。

隨著輸入內容 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 的定義為兩種可能結果的機率比率對數:y1 - y

圖 2 說明如何使用這些計算將線性輸出轉換為邏輯迴歸輸出。

左:包含點 (-7.5、-10)、(-2.5, 0) 和 (0, 5) 的線條
         醒目顯示。右圖:Sgmoid 曲線與對應的轉換後
         點 (-10, 0.00004)、(0, 0.5) 和 (5, 0.9933) 以醒目方式顯示。
圖 2 左側:線性函數 z = 2x + 5 的圖表,其中三個點已加以醒目顯示。右圖:相同三個點的 Sigmoid 曲線 S 函數轉換後醒目顯示。

在圖 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. 這些輸入值的 z 值是多少?
-1
0
0.731
1
答對了!權重和偏誤定義的線性方程式為 z = 1 + 2x1 – x2 + 5 x3。將輸入值代入方程式後,會得到 z = 1 + (2)(0) - (10) + (5)(2) = 1
2. 這些輸入值的邏輯迴歸預測值為何?
0.268
0.5
0.731 版

如上方步驟 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\)

1
請注意,sigmoid 函數的輸出值一律會大於 0 且小於 1。