【機器學習 02】Logistic Regression

Min
Becoming a data scientist
4 min readJul 8, 2022

前一篇在討論 linear regression,但是此方法的問題是,如果加入 outliers,原本的 linear regression 為了降低 error,會需要調整位置,反而不能正確分出原本正確的類別。

加入 outliers 的 linear regression

為了解決此問題,我們使用 logistic regression,將 hΘ(x) 限縮在 0 到 1 之間。

Logistic regression

Hypothesis

hΘ(x): estimated probability that y = 1 on input x

hΘ(x) = P(y=1 | x; Θ)

白話文翻譯就是在給定 x 和 Θ 的情況下, y = 1 的機率就是 hΘ(x)。

P(y=0 | x; Θ) + P(y=1 | x; Θ) = 1

Decision Boundary

我們將切分點設在 0.5:

Predict (1) y = 1 if hΘ(x) ≥ 0.5
(2) y = 0 if hΘ(x) < 0.5

以下圖簡單的 x1 + x2 = 3 做介紹:

Linear decision boundary

也能夠用非線性的 decision boundary:

Non-linear decision boundary

How to find Θ?

要找到 Θ 的話,首先需要先定義 cost function:

有別於 linear regression,我們定義新的 cost function,在 y = 1 或 0 時,可以用不同的圖形認識這個 cost function。

If y = 1

依照上面紅色框框中定義的 cost function,當 y = 1 時是使用 -log(z) 的圖形

if y = 1

If y = 0

依照上面紅色框框中定義的 cost function,當 y = 0時是使用 -log(1-z) 的圖形。但是由於我對這個圖形不太熟,所以讓我們先來看一下要如何一步步推導出圖形的樣貌。

從 log(z) 開始推導出 -log(1-z) 的圖形

得到圖形後,我們取用 -log(1-z) 介於 0 到 1 之間的線段。

if y = 0

接下來,為了找尋最小的 cost,我們使用 gradient descent 以尋找 Θ。

經過這些步驟,我們完成了 logistic regression 的推導。

Multi-class classification

上述的 logistic regression 只有做二元分類問題,如果要做多類別分類的話,可以訓練多個分類器。

想要更深入了解的話,別忘了去最上面的目錄看其他章的課程筆記!

喜歡這篇文章或是對你有幫助的話,別忘了拍手給我鼓勵哦 👏🏻

參考資料

  1. 林軒田,機器學習基石與技法:https://www.youtube.com/c/hsuantien/playlists

--

--