概述
Logistic regression is a method for classifying data into discrete outcomes.
邏輯迴歸將數據歸類爲離散的結果並輸出。
邏輯迴歸雖然名爲“迴歸”,但它解決的其實是分類問題。以二分類問題爲例,習慣上把我們關注的某一現象的存在歸爲y=1(如垃圾郵件、惡性腫瘤細胞),反之則爲y=0。
爲什麼不用線性迴歸
.利用線性迴歸解決分類問題通常不是好的方法,主要有兩個原因:
1. 如圖1所示,線性迴歸的參數很容易受到極端值的影響,容易得到不好的假設函數。
2. 比如進行2分類(binary classifying)問題,假設y的值ϵ{0,1},但是線性迴歸模型的假設函數計算出來的函數值會遠大於1或遠小於0。
假設函數(Hypothesis Funciton)
針對一個分類問題
想要:0≤hθ(x)≤1
對假設函數h_θ (x)輸出結果的解釋:y=1的概率。
若計算出hθ(x)=0.7,則表示對輸入x,輸出y=1的概率爲0.7。
logistic函數
logistic函數可以很好避免線性迴歸的第2點不足。
邏輯迴歸(Logistic Regression)的函數值在區間[0,1]中。
Sigmoid函數和Logistic函數通常是指同一個函數:g(z)= 1/(1+e−z ) ,
進一步地,常用的Logistic函數的形式:hθ(x)=g(θTx)= 1/(1+e−θTx)
該函數具有如下較好性質:g′(z)=g(z)(1−g(z)) x→−∞lim1+e−z1=0x→+∞lim1+e−z1=1g(0)=0.5
決策邊界(Decision Boundary)
類似於高中學的線性規劃或者非線性規劃的邊界,根據函數不等式反解出來。
hθ(x)=g(θTx)(兩個x是不同的),由於函數是單調遞增的,
0.5≤hθ(x)<1⇔x≥00<hθ(x)<0.5⇔x<0
所以當進行二分類時,容易想到利用0作爲閾值(threshold)。
根據假設函數(hypothesis function)的設想以及概率的意義(假設函數計算的可以不嚴謹地理解爲概率)
當hθ(x)≥0.5⇔x≥0⇒預測y=1 當hθ(x)<0.5⇔x<0⇒預測y=0當要確定h_θ (x)≥0.5的範圍,只要確定x≥0的範圍即可。
eg1:線性決策邊界
hθ(x)=g(θ0+θ1x1+θ2x2)假設[θ0,θ1,θ2]=[-3,1,1]。想要預測y=1
只需要g(θ0+θ1x1+θ2x2)=g(−3+x1+x2)≥0.5只需要−3+x1+x2≥0則直線l:−3+x1+x2是決策邊界,當-3+x_1+x_2≥0時,y預測爲1。
eg2:非線性決策邊界
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)
[θ0,θ1,θ2,θ3,θ4]=[−1,0,0,1,1]
想要預測y=1,只需要g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)=g(−1+x32+x42)≥0.5只需要−1+x32+x42≥0則−1+x32+x42=0是決策邊界,當−1+x32+x42≥0時,y預測爲1。
代價函數(Cost Function)
如果採用之前的均方誤差(Mean Squared Error)公式:J(θ)=m1i=1∑m21(hθ(x(i))−y(i))2把J(θ)改寫成更一般的形式
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))Cost(hθ(x(i)),y(i))=21(hθ(x(i))−y(i))2J(θ)是非凸函數,擁有多個局部最小值,使用梯度下降法不一定能收斂到全局最小。
下面介紹一個能使J(θ)爲凸函數的Cost函數。
Cost(hθ(x),y)={−log(hθ(x)),−log(1−hθ(x)),y=1y=0
當y=1時,從Cost函數的圖像中不難看出,當y=1時,Cost = 0,說明當實際值爲1,預測值爲1時,付出的代價爲0;當y從右邊趨於0時,Cost趨於正無窮,說明當實際值爲1,預測值爲0,付出的代價非常大。這符合Cost函數的性質。
當y=0時,做類似解釋。
由於原來的Cost函數爲分段函數,不好處理,構造出等價的Cost函數,即
Cost=y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))(y只取0,1)
梯度下降及優化算法
θj←θj−α∂θj∂J(θ)i.e.θj←θj−αm1i=1∑m(hθ(x(i))−y(i))xj(i)(同時更新所有θj)hθ(x)=1+e−θTx1
優化算法:
共軛梯度(Conjugate gradient)、BFGS、L-BFGS等方法。
優點:1可以自動尋找適合的學習率α
2 能夠更快地收斂到最優解
缺點:算法複雜
多分類問題
比如要把整個數據集分成3類,則先挑出第一類,其餘兩類視爲一類,重複操作兩次。
hθ(i)(x)=P(y=i∣x;θ),(i=1,2,3).所以這裏有三個分類器
針對每個類別 i,訓練一個邏輯迴歸分類器hθ(i)(x)去預測y=i的概率。
針對一個新的輸入x,預測x的類別i,
i s.t.
imaxhθ(i)(x)
可以理解爲取i , s.t maxP(y=i)。