一,分類問題
我們從二元的分類問題開始討論。我們將因變量(dependant variable)可能屬於的兩個類分別稱爲負向類(negative class)和正向類(positive class),則因變量y ∈{0,1},其中 0 表示負向類,1 表示正向類。下圖以腫瘤的惡性良性舉例:
如果我們要用線性迴歸算法來解決一個分類問題,對於分類,y 取值爲 0或者 1,但如果你使用的是線性迴歸,那麼假設函數的輸出值可能遠大於 1,或者遠小於 0,即使所有訓練樣本的標籤 y 都等於 0 或 1。儘管我們知道標籤應該取值 0或者 1,但是如果算法得到的值遠大於 1 或者遠小於 0 的話,就會感覺很奇怪。所以我們在接下來的要研究的算法就叫做邏輯迴歸算法,這個算法的性質是:它的輸出值永遠在0到 1之間。順便說一下,邏輯迴歸算法是分類算法,我們將它作爲分類算法使用。有時候可能因爲這個算法的名字中出現了「迴歸」使你感到困惑,但邏輯迴歸算法實際上是一種分類算法,它適用於標籤 y 取值離散的情況,如:1 0 0 1。
回顧在一開始提到的乳腺癌分類問題,我們可以用線性迴歸的方法求出適合數據的一條直線:
根據線性迴歸模型我們只能預測連續的值,然而對於分類問題,我們需要輸出 0 或 1,
我們可以預測:
當hθ大於等於 0.5 時,預測 y=1。
當hθ小於 0.5 時,預測 y=0 對於上圖所示的數據,這樣的一個線性模型似乎能很好地完成分類任務。假使我們又觀測到一個非常大尺寸的惡性腫瘤,將其作爲實例加入到我們的訓練集中來,這將使得我們獲得一條新的直線。
爲什麼線性迴歸不適合做分類問題
解答:這時,再使用 0.5 作爲閥值來預測腫瘤是良性還是惡性便不合適了。可以看出,線性迴歸模型,因爲其預測的值可以超越[0,1]的範圍,並不適合解決這樣的問題。我們引入一個新的模型,邏輯迴歸,該模型的輸出變量範圍始終在 0 和 1 之間。
邏輯迴歸模型的假設是:hθ(x)=g(θTX)
其中:
X 代表特徵向量
g 代表邏輯函數(logistic function)是一個常用的邏輯函數爲 S 形函數(Sigmoid function)
公式爲:該函數的圖像爲:
二,決策邊界
現在講下決策邊界(decision boundary)的概念。這個概念能更好地幫助我們理解邏輯迴歸的假設函數在計算什麼。
在邏輯迴歸中,我們預測:
當 hθ 大於等於 0.5 時,預測 y=1
當 hθ 小於 0.5 時,預測 y=0
根據上面繪製出的 S 形函數圖像,我們知道當
z=0 時 g(z)=0.5
z>0 時 g(z)>0.5
z<0 時 g(z)<0.5
又 z=θTX,即:
θTX 大於等於 0 時,預測 y=1
θTX 小於 0 時,預測 y=0
現在假設我們有一個模型:
並且參數 θ 是向量[-3 1 1]。 則當-3+x1+x2 大於等於 0,即 x1+x2 大於等於 3 時,模型將預測 y=1。我們可以繪製直線 x1+x2=3,這條線便是我們模型的分界線,將預測爲 1 的區域和預測爲 0 的區域分隔開。
假使我們的數據呈現這樣的分佈情況,怎樣的模型才能適合呢?
因爲需要用曲線才能分隔 y=0 的區域和 y=1 的區域,我們需要二次方特徵: 假設參數: hØ(x) = g(Ø0 + Ø1x1 + Ø2x2 + Ø3x12 +Ø4x22 )是[-1 0 0 1 1],則我們得到的判定邊界恰好是圓點在原點且半徑爲 1 的圓形。
我們可以用非常複雜的模型來適應非常複雜形狀的判定邊界。