邏輯迴歸:使用 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

按這裡即可深入瞭解數學 S 函數的後方

下表顯示 S 函數的輸出值 介於 7 到 7 之間的輸入值留意 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 中 通稱為 log-odds,因為如果開頭為 以下 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 函數的輸入內容 讓直線彎曲形狀。請注意,線性方程式 就能輸出非常大或非常小的 z 值,但 S 函數的輸出結果 函式 (y) 一律介於 0 和 1 之間 (不含 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
請記住,S 函數的輸出內容一律會 介於 0 至 1 之間。