我們從前面的模型演化可以了解一個機器學習模型可以怎麼樣衍生出其他的變體來解決問題。

現在我們要切換到另外一條跑道上,我們一樣是從線性迴歸模型出發,我們或許可以換成其他的不同的分佈。

常態分佈

其實我們在前面的文章中有提到我們的線性迴歸模型假設了誤差是會呈現一個常態分佈。

對於誤差的假設這件事情其實很大程度影響了我們模型的長相,也會影響這個模型所適用的資料。

像是線性迴歸模型適用的是連續型變數的資料,更進一步來說,他是要求他的應變量(y)要是連續型的,看起來是這樣的。

$$
\mathbb{E}[y] = \mathbb{E}[Normal(Y=y; \mu, \sigma)] = \mu = \mathbf{w}^T\mathbf{x} + b
$$

$Normal(Y=y; \mu, \sigma)$:代表常態分佈,以 $\mu$ 為平均數,$\sigma$ 為標準差,輸入是應變量(y),輸出是機率。

事實上,當你把你的一些 feature 輸入這個模型後,預測出來的是應變量的期望值或是平均數($\mathbb{E}[y]$)。

如果我們要預測的應變量是二元的類別資料,那也就是把問題轉換成分類問題,我們就需要用不同的分佈。

白努力分佈與二項式分佈

當我們的資料是分成兩類:0, 1,那麼他會對應到白努力分佈(Bernoulli distribution)。

當你蒐集了一群二元分類的資料,那麼就會對應到二項式分佈(Binomial distribution)。

如果你要預測的是一筆二元分類的資料,你應該要假設你的應變量(y)是白努力分佈。

$$
\mathbb{E}[y] = \mathbb{E}[Ber(Y=y; p)] = \mu = \mathbf{w}^T\mathbf{x} + b
$$

$Ber(Y=y; p)$:代表白努力分佈,以 p 為成功機率,輸入是應變量(y),輸出是機率。

羅吉斯迴歸

羅吉斯迴歸的模型是以下這個樣子:

$$
y = \sigma(\mathbf{w}^T\mathbf{x} + b)
$$

其中的 $\sigma$ 是 sigmoid function,由這個函數輸出的就是成功機率了:

$$
p = \sigma(s) = \frac{1}{1 + e^{-s}}
$$

那這跟我們前面提的分佈看起來都不太一樣阿!我們來反推一下,其實我們前面提到的分佈應該是跟 sigmoid function 的反函數有關係:

$$
\sigma^{-1}(y) = \mathbf{w}^T\mathbf{x} + b
$$

我們從白努力分佈開始,當 $y \in {0, 1}$ 時:

$$
Ber(Y=y; p) = p^y (1-p)^{(1-y)}
$$

也就是,當 y 是 0 的時候,只會剩下後面那一項,當 y 是 1 的時候,只會剩下前面那一項。

那們我們要預測的其實是一個事件發生的機率 p,可是我們由 $\mathbf{w}^T\mathbf{x} + b$ 計算出來的是連續的數值。那要怎麼將這兩者接起來呢?

在統計學裡有一個叫作 logit function 的東西,中文翻譯叫作邏輯函數,但是跟邏輯沒什麼關係就是了。

$$
y = log \frac{x}{1 - x}
$$

如果將裡頭的 x 想成成功機率的話,分子就是成功的機率,分母就是失敗的機率,就非常像一個東西叫作勝算(odds),所以他又叫作 log odds。

用勝算的話就是一個連續的數值,同時也可以表達成功機率的含意,我們就從這邊開始吧!一路朝著 sigmoid function 邁進。

$$
s = ln \frac{p}{1 - p}
$$

$$
-s = ln \frac{1 - p}{p}
$$

$$
e^{-s} = \frac{1 - p}{p}
$$

$$
p + e^{-s}p = 1
$$

$$
(1 + e^{-s})p = 1
$$

$$
p = \frac{1}{1 + e^{-s}}
$$

看到了嗎?他是 sigmoid function!

也就是說,如果用線性迴歸預測的是 log odds,那就會跟羅吉斯迴歸一樣!

$$
ln \frac{p}{1 - p} = \sigma^{-1}(y) = \mathbf{w}^T\mathbf{x} + b
$$

你如果把 sigmoid function 還原回來的話:

$$
y = \frac{1}{1 + e^{- \mathbf{w}^T\mathbf{x} - b}} = \sigma(\mathbf{w}^T\mathbf{x} + b)
$$

就是羅吉斯迴歸的樣子了!