邏輯迴歸 筆記

概述

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。
圖1

假設函數(Hypothesis Funciton)

針對一個分類問題
想要:0hθ(x)10≤h_θ (x)≤1
對假設函數h_θ (x)輸出結果的解釋:y=1的概率。
若計算出hθ(x)h_θ (x)=0.7,則表示對輸入x,輸出y=1的概率爲0.7。

logistic函數

logistic函數可以很好避免線性迴歸的第2點不足。
邏輯迴歸(Logistic Regression)的函數值在區間[0,1]中。
Sigmoid函數和Logistic函數通常是指同一個函數:g(z)= 1/(1+eze^{-z} ) ,
進一步地,常用的Logistic函數的形式:hθ(x){h_θ (x)}=g(θTx){g(θ^T x)}= 1/(1+eθTxe ^{-θ^T x})
圖2
該函數具有如下較好性質:g(z)=g(z)(1g(z)){g'(z) = g(z)(1-g(z)) } limx11+ez=0{\lim_{x \to -\infty}} \frac{1}{1+e^{-z}}= 0limx+11+ez=1{\lim_{x\to +\infty} }\frac{1}{1+e^{-z}}= 1 g(0)=0.5{g(0)= 0.5}

決策邊界(Decision Boundary)

類似於高中學的線性規劃或者非線性規劃的邊界,根據函數不等式反解出來。
hθ(x)=g(θTx) h_θ (x)= g(θ^T x)(兩個x是不同的),由於函數是單調遞增的,
0.5hθ(x)<1x00.5≤h_θ (x)<1⇔ x≥00<hθ(x)<0.5x<00<h_θ (x)<0.5⇔ x<0
所以當進行二分類時,容易想到利用0作爲閾值(threshold)。

根據假設函數(hypothesis function)的設想以及概率的意義(假設函數計算的可以不嚴謹地理解爲概率)
hθ(x)0.5x0y=1當h_θ (x)≥0.5⇔ x≥0⇒預測y=1 hθ(x)<0.5x<0y=0當h_θ (x)<0.5⇔ x<0⇒預測y=0當要確定h_θ (x)≥0.5的範圍,只要確定x≥0的範圍即可。

eg1:線性決策邊界
hθ(x)=g(θ0+θ1x1+θ2x2)h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2)假設[θ0,θ1,θ2][θ_0,θ_1,θ_2]=[-3,1,1]。想要預測y=1
只需要g(θ0+θ1x1+θ2x2)=g(3+x1+x2)0.5g({θ_0+θ_1 x_1+θ_2 x_2} )=g(-3+x_1+x_2 )≥0.5只需要3+x1+x20-3+x_1+x_2≥0則直線l:3+x1+x2l:-3+x_1+x_2是決策邊界,當-3+x_1+x_2≥0時,y預測爲1。
圖2

eg2:非線性決策邊界
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2)
[θ0,θ1,θ2,θ3,θ4]=[1,0,0,1,1][θ_0,θ_1,θ_2,θ_3,θ_4]=[-1,0,0,1,1]
想要預測y=1,只需要g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)=g(1+x32+x42)0.5g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2)=g(-1+x_3^2+x_4^2 )≥0.5只需要1+x32+x420-1+x_3^2+x_4^2≥01+x32+x42=0-1+x_3^2+x_4^2=0是決策邊界,當1+x32+x420-1+x_3^2+x_4^2≥0時,y預測爲1。

圖4

代價函數(Cost Function)

如果採用之前的均方誤差(Mean Squared Error)公式:J(θ)=1mi=1m12(hθ(x(i))y(i))2J(θ)=\frac1m \sum_{i=1}^m\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 J(θ)J(\theta)改寫成更一般的形式
J(θ)=1mi=1mCost(hθ(x(i)),y(i)){ J(θ)=\frac1m \sum_{i=1}^mCost(h_θ (x^{(i)} ),y^{(i)})}Cost(hθ(x(i)),y(i))=12(hθ(x(i))y(i))2 { Cost(h_θ (x^{(i)} ),y^{(i)})=}\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 J(θ){J(\theta)}非凸函數,擁有多個局部最小值,使用梯度下降法不一定能收斂到全局最小。
下面介紹一個能使J(θ){J(θ)}凸函數的Cost函數。

Cost(hθ(x),y)={log(hθ(x)),y=1log(1hθ(x)),y=0Cost(h_θ (x),y)=\begin{cases}-log⁡(h_θ (x)), &y= 1 \cr-log⁡(1-h_θ (x)) , &y=0\end{cases}
圖5

圖6
當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)))+(1y(i))log(1hθ(x(i)))(y0,1) {Cost= y^{(i)} log⁡(h_θ (x^{(i)}))+(1-y^{(i)} )log⁡(1-h_θ (x^{(i)} )) (y只取0,1) }

梯度下降及優化算法

θjθjαθjJ(θ)θ_j←θ_j-α\frac ∂{∂θ_j } J(θ)i.e.θjθjα1mi=1m(hθ(x(i))y(i))xj(i)(θj) θ_j←θ_j-α \frac1m \sum_{i=1}^m(h_θ (x^{(i) })-y^{(i)}) x^{(i)}_j (同時更新所有θ_j)hθ(x)=11+eθTxh_θ (x)= \frac1{1+e^{-{θ^Tx}} }

優化算法:
共軛梯度(Conjugate gradient)、BFGS、L-BFGS等方法。
優點:1可以自動尋找適合的學習率α
2 能夠更快地收斂到最優解
缺點:算法複雜

多分類問題

比如要把整個數據集分成3類,則先挑出第一類,其餘兩類視爲一類,重複操作兩次。

圖8
圖9
圖10
圖11
圖12
hθ(i)(x)=P(y=ix;θ),(i=1,2,3).h_θ^{(i)}(x)=P(y=i |x;θ),(i=1,2,3).所以這裏有三個分類器
針對每個類別 i,訓練一個邏輯迴歸分類器hθ(i)(x)h_θ^{(i)}(x)去預測y=i的概率。
針對一個新的輸入x,預測x的類別i,
i s.t.s.t.
maxihθ(i)(x)\max_i⁡h_θ^{(i)} (x)
可以理解爲取i , s.t maxP(y=i)max{P(y=i)}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章