面壁者系列:Logistic回歸

什麼是邏輯回歸?

是一種廣義的線性回歸分析模型,因此與多重線性回歸分析有很多相同之處。它們的模型形式基本上相同,都具有  w^Tx+b ,其中w和b是待求參數,其區別在於他們的因變數不同,多重線性回歸直接將  w^Tx+b 作為因變數,即 y= w^Tx+b ,而logistic回歸則通過函數L將  w^Tx+b 對應一個隱狀態h, h =g(w^Tx+b) ,然後根據h 與1-h的大小決定因變數的值。如果L是logistic函數,就是logistic回歸,如果L是多項式函數就是多項式回歸。

適用條件:

  1. 因變數為二分類的分類變數或某事件的發生率,並且是數值型變數。但是需要注意,重複計數現象指標不適用於Logistic回歸。
  2. 殘差和因變數都要服從二項分布。二項分布對應的是分類變數,所以不是正態分布,進而不是用最小二乘法,而是最大似然法來解決方程估計和檢驗問題。
  3. 自變數和Logistic概率是線性關係
  4. 各觀測對象間相互獨立。

模型特點:

  • 優點:計算代價不高,易於理解和實現
  • 缺點: 容易欠擬合,分類精度可能不高
  • 適用數據類型: 數值型 和 標稱行

Hypothesis Function 假設方程

h_{	heta} = frac{1}{1+e^{-z}} label{sigmoid}	ag{1} \ z = w^T x

w 是參數/係數, x是自變數。 h_{	heta} 根據自身特性,它的輸出範圍在0和1之間。

Sigmoid Function/Logistic Function

  • 公式(1) 就是 Sigmoid 函數。
  • 可以理解為 給定數據X,參數 theta, y=1的概率是多少

Decision Boundary 決定邊界

  • 定義: the line separates the area where y=0 and where y = 1
  • 一般情況來說: h_{	heta} 任何大於 0.5 的數據被分入 1 類,小於 0.5 即被歸入 0 類。

Cost Function

J(	heta) = -frac{1}{m} sum_{i=1}^{m} [ y^{(i)}log(h_{	heta}(x^{(i)})) + (1 - y^{(i)} )log(1-h_{	heta}(x^{(i)}))]

我們的目標是盡量讓我們hypothesis function得出的預測值和真實值接近。那麼 Cost Function就是衡量接近多少的一個函數。越近,這個函數就越小。因為這是一個凸函數,那也就意味著我們可以用梯度下降法來解決得到最優解。

Gradient Decent 梯度下降

梯度下降就不過多介紹了,是一個一階最優化演算法,通常也稱為最速下降法。

要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜索。如果相反地向梯度正方向迭代進行搜索,則會接近函數的局部極大值點;這個過程則被稱為梯度上升法。大致意思就是用梯度來得到最優解。

演算法就是:

	ext{repeat until convergence:{} \ 	heta_j := 	heta_j - frac{alpha}{m}( h_	heta(x^{(i)})-y^{(i)} ) x_j^{(i)} \ \ 	ext{ }}

Multi-class classification one-vs-all

邏輯回歸也可以用作多元分類/多標籤分類。 思路如下:

假設我們標籤A中有a0,a1,a2....an個標籤,對於每個標籤 ai (ai 是標籤A之一),我們訓練一個邏輯回歸分類器。

即,訓練該標籤的邏輯回歸分類器的時候,將ai看作一類標籤,非ai的所有標籤看作一類標籤。那麼相當於整個數據集裡面只有兩類標籤:ai 和其他。

剩下步驟就跟我們訓練正常的邏輯回歸分類器一樣了。

測試數據的時候,將查詢點套用在每個邏輯回歸分類器中的Sigmoid 函數,取值最高的對應標籤為查詢點的標籤。

避免過擬合的方法

減少多餘的特徵:

  • 手動選擇那些特徵保留下來
  • 使用演算法來選擇特徵。

Regularization 正則化:

  • 就是保留所有特徵,但是需要加入在cost function一個正則化項,也就是下面公式加號右邊那個求和式子。J(	heta) =-frac{1}{m} sum_{i=1}^{m} [ y^{(i)}log(h_{	heta}(x^{(i)})) + (1 - y^{(i)} )log(1-h_{	heta}(x^{(i)}))] + frac{1}{2m} lambda sum_{j=1}^n 	heta_{j}^2
  • lambda 叫做正則化參數, 太大太小都不太好。太大會 underfitting(欠擬合),太小可能會 overfitting(過擬合)。剛剛好,就是fitting擬合。
  • 正則化項中的 j是從1開始的。因為我們不需要對 	heta_0 進行懲罰。m前面 2 是為了求導方便,無其他實際意義。
  • 當所有特徵都有點用的時候,刪除特徵未免太過可惜。這個場景下,正則化就比較適用。

這時候梯度下降演算法就會更改為:

	ext{repeat until convergence:{} \ 	heta_0 := 	heta_0 - frac{alpha}{m}( h_	heta(x^{(i)})-y^{(i)} ) x_0^{(i)} \ 	heta_j := 	heta_j - frac{alpha}{m}( h_	heta(x^{(i)})-y^{(i)} ) x_j^{(i)} - frac{alphalambda}{m}	heta_j \ 	ext{ }}

Logistic回歸 和 最大熵模型

Logistic 回歸和最大熵模型 都屬於對數線性模型 (log linear model)。 學習它們的模型一般採用極大似然估計或者正則化的極大似然估計。Logistic 回歸和最大熵模型學習可以形式化為無約束最優化問題。除了使用梯度下降法來解決,可以使用改進的迭代尺度法和擬牛頓法來解決。


推薦閱讀:

TAG:Logistic回歸 | 機器學習 | 數據科學 |