1. 程式人生 > >邏輯迴歸-Logistic Regression

邏輯迴歸-Logistic Regression

邏輯迴歸-Logistic Regression


邏輯迴歸假設資料服從伯努利分佈,是一種二分類演算法 ,即資料集的標籤只有兩種類別0或1,一般類別1表示我們想要去尋找的結果。邏輯迴歸可以運用在,比如判斷郵件是否是垃圾郵件,客戶的好壞等。相比於線性迴歸用資料來擬合一條直線,邏輯迴歸用資料擬合一條決策邊界。

因為我們假設樣本服從伯努利分佈,所以y=1的概率為p,y=0的概率為1-p(y表示樣本的類別). 如果用之前的線性迴歸y=wx(w,x都為向量)直接去擬合樣本的話,y值的範圍為R, 而概率的取值範圍為[0,1]。顯然這樣是不合理的,概率不可能大於1或小於0. 所以在這裡就引入了logit函式. logit函式的定義域為(0,1), 值域為R。所以logit函式可以將p的值對映到R,這樣就可以和線性迴歸建立關係。
                    o

d d = p 1 p odd=\frac{p}{1-p}

               l o g i t ( o d d
) = l o g ( o d d ) = l n ( p 1 p ) logit(odd)=log(odd)=ln(\frac{p}{1-p})

                    l n ( p 1 p ) = w x ln(\frac{p}{1-p})=wx
在這裡取logit(odd)函式的反函式,就可以得到:
                    p = 1 1 + e w x p=\frac{1}{1+e^{-wx}}

這個就是下面的sigmoid函式。

假設函式 :

           h θ ( x ) = g ( θ T x ) h_\theta(x)=g(\theta^Tx)
           g ( z ) = 1 1 + e z g(z)=\frac{1}{1+e^{-z}}
           z = θ T x z=\theta^Tx
邏輯迴歸在這裡引入了sigmoid函式 g ( z ) g(z) ,可以把迴歸的結果壓縮到[0, 1]的範圍。
下圖為sigmoid函式的影象:

在這裡插入圖片描述
然後選擇一個閾值,一般我們選擇0.5作為閾值,此時就可以將樣本分為兩類:
h θ ( x ) > = 0.5 h_\theta(x)>= 0.5 時, y = 1,
h θ ( x ) < 0.5 h_\theta(x) < 0.5 時,y = 0
所以 h θ ( x ) h_\theta(x) 輸出結果代表的意思就是樣本屬於y = 1類的概率,即 p ( y = 1 x , θ ) p(y=1|x,\theta) 。因為當 h θ ( x ) h_\theta(x) 輸出的結果小於0.5時,樣本就屬於y=0類,也就是說樣本屬於y=1的概率很小。

決策邊界
決策邊界是將兩類分開的函式, 也就是邏輯迴歸裡面的 z z . 從前面我們知道
   g ( z ) > = 0.5 g(z)>=0.5 , y = 1;
   g ( z ) < 0.5 g(z)<0.5 , y = 0
再結合sigmoid函式的影象我們可以看到當 z > = 0 z>=0 時,就有 g ( z ) > = 0.5 g(z)>=0.5 ,即樣本的型別y = 1; 當 z < 0 z<0 時,就有 g ( z ) < 0.5 g(z)<0.5 ,即樣本的型別y = 0,所以函式 z z 就是那條邊界。
在這裡引用吳恩達的兩個例子:
1、linear boundary
假設 h θ ( x ) = g ( 3 + x 1 + x 2 ) h_\theta(x) =g(-3+x_1+x_2) z = 3 + x 1 + x 2 z=-3+x_1+x_2
z > = 0 z>=0時 ,即 x 1 + x 2 > = 3 x_1+x_2>=3 是,y=1
z < 0 z<0時 ,即 x 1 + x 2 < 3 x_1+x_2<3 是,y=0
視覺化的結果如下圖所示,中間紫色的直線就是決策邊界z。邊界的右邊為y=1的區域,左邊為y=0的區域,將兩類分割開:
在這裡插入圖片描述

2、non-liner boundary
當兩類線性不可分時,可以採用高階多項式。
假設 h θ ( x ) = g ( 1 + x 1 2 + x 2 2 ) h_\theta(x) =g(-1+x_1^2+x_2^2) z = 1 + x 1 2 + x 2 2 z=-1+x_1^2+x_2^2
z > = 0 z>=0時 ,即 x 1 2 + x 2 2 > = 1 x_1^2+x_2^2>=1 是,y=1