1. 程式人生 > >機器學習筆記04:邏輯迴歸(Logistic regression)、分類(Classification)

機器學習筆記04:邏輯迴歸(Logistic regression)、分類(Classification)

說明:本文章所有圖片均屬於Stanford機器學課程,轉載請註明出處

面對一些類似迴歸問題,我們可以通過線性迴歸方法來擬合一個函式,以此來預測資料,但它的輸出是連續的。有時候呢,我們需要一種方法給出一個判定結果,例如”同意(agree)”、”不同意(disagree)”。、下面呢就是關於這個方法的新內容,叫做分類(Classification)問題。又例如,如果我們需要預測一輛汽車是好的還是壞的,只有兩種結果:好、壞。這種輸出為0或者1的問題,就叫做分類問題,而我們對應與此種問題所採用的方法即是邏輯迴歸(Logistic regression)

1.分類及其表示(Classification and Representation)

i.分類(Classification)

首先來看看分類(Classification)問題,在第一段中已經簡單介紹了什麼是分類問題,下面再來舉幾個例子:

Examples Purposes
Email Spam / Not Spam?
Online Transaction Fraudulent (Yes / No?)
Tumor Malignant / Benign?

第一個例子是判斷垃圾郵件,對一封郵件,我們需要判斷它是否為垃圾郵件;第二個例子是線上交易,我們需要判斷這個交易是否有欺詐的嫌疑;最後一個例子是腫瘤評估,我們需要對一個病人的病情進行綜合分析,來判斷腫瘤是惡性的還是良性的。

詳細地,我們以腫瘤評估為例。我們有如下圖所示的一些樣本,其橫座標表示腫瘤的大小,縱座標表示性態(良性還是惡性):

這裡寫圖片描述

假設我們用一條直線 hθ(x)=θTX 來擬合這些資料,其影象可能大致如下:
這裡寫圖片描述

如上圖所示, hθ(x) 為紫色的直線,如果我們選擇 0.5 作為一個基準點來判斷一個腫瘤是良性還是惡性的:Ifhθ(x)0.5,predict"y=1"Ifhθ(x)<0.5,predict"y=0" 那麼對於上面的資料,看起來好像還不錯。但是我們增加一組額外的樣本來看看:
這裡寫圖片描述

如上圖所示,我們增加了一組資料,通過線性迴歸(Linear Regression)得到了一條藍色的直線,但是其看起有點不那麼理想,例如有幾個惡性腫瘤,也會被分類為良性腫瘤。所以,在分類問題中,線性迴歸
通常不是一個很好的辦法。所以我們需要使用邏輯迴歸(Logistic regression)來解決分類問題。邏輯迴歸是一個分類演算法(classification algorithm)在邏輯迴歸中,我們要求 0hθ(x)1,下面我們就來看看邏輯迴歸的假設函式。

ii.假設函式(Hypothesis)

上面我們提到了,在只有兩種結果的分類問題中,它的輸出不是 0 即是 1 ,所以我們想要將分類器(classifier)的輸出控制在 [0,1] 上。在線性迴歸中,我們的假設函式為 hθ(x)=θTX ,顯然其輸出並不只限於區間 [0,1] ,所以線性迴歸中的假設函式在邏輯迴歸(Logistic regression)中是不合適的。這裡我們使我們的假設函式為:

hθ(x)=g(θTX) 其中,函式g的形式為: g(z)=11+ez 其影象為:
這裡寫圖片描述

其與 y 軸的交點為 (0,0.5) ,所以假設函式為: hθ(x)=11+eθTX

現在我們來看一下邏輯迴歸(Logistic regression)的假設函式的具體意義是什麼。
這裡的函式 hθ(x) 代表的是關於輸入 x ,使得 y=1 的可能性。來舉個例子:
假設有兩個特徵:

[x1x2]=[1tumorSize] 其中 x1 為 1,這是我們之前約定好的(文章開頭列出的文章), x2 表示腫瘤的大小。假如 hθ(x)=0.7 ,這就表示病人的腫瘤為 惡性腫瘤的可能性為 0.7 。進一步地,可以將假設函式表示為:hθ(x)=P(y=1|x;θ)
即給定引數 θ ,關於輸入 x ,使得 y=1 的可能性。進一步,我們也可以知道如下的結論:P(y=0|x;θ)+P(y=1|x;θ)=1 P(y=0|x;θ)=1P(y=0|x;θ) 假設函式的形式就講到這裡,下面講一講決策邊界(Decision boundary)

iii.決策邊界(Decision Boundary)

前面提到了 hθ(x)=P(y=1|x;θ) ,那什麼時候 hθ(x) 的值為 1 ,什麼時候為 0 呢?一般規定:

{10if hθ(x)0.5 ;if hθ(x)<0.5 . 同時,我們發現對於函式 g(