天天看點

邏輯回歸(Logistic Regression)

1. 前言

今天我們介紹機器學習裡面大名鼎鼎的邏輯回歸。不要看他的名字裡面有“回歸”,但是它其實是個分類算法。它取名邏輯回歸主要是因為是從線性回歸轉變而來的。

2.邏輯回歸原理

2.1 邏輯回歸的由來

不知道讀者還記不記得線上性回歸中有一節廣義線性回歸介紹了在\(Y=Xθ\)的基礎上對\(Y\)進行函數變換為\(g(Y)=Xθ\)。而在邏輯回歸中,這個\(g()\)就是大名鼎鼎的\(Sigmoid(x)=\frac{1}{1+e^{-x}}\)函數。Sigmoid函數的圖像如下。Sigmoid函數會把自變量\(x\in\{-\infty,+\infty\}\)映射到\(y\in\{-1,+1\}\)上。

邏輯回歸(Logistic Regression)

Sigmoid函數處處可導,導數很簡潔\(S^{\prime}(x)=S(x)(1-S(x))\),它的導數圖像如下。從圖中可以看出導數範圍是\(S^\prime\in\{0,0.25\}\),順便說下,在深度學習中,如果激活函數是Sigmoid的話,會出現梯度消失問題。

邏輯回歸(Logistic Regression)

2.2 邏輯回歸的模型

線性回歸中的模型是:

\[Z_{\theta}={X}\theta

\]

Sigmoid的函數是:

\[S(z)=\frac{1}{1+e^{-z}}

最後套上Sigmoid函數合并出來的結果:

\[h_{\theta}(X) = \frac{1}{1+e^{-X\theta}}

2.3 邏輯回歸的損失函數

邏輯回歸使用極大似然法來推導出損失函數。

我們知道,邏輯回歸的定義,假設我們的樣本輸出是0或者1兩類。那麼我們有:

\[P(y=1|x,\theta ) = h_{\theta}(x)

\[P(y=0|x,\theta ) = 1- h_{\theta}(x)

把兩種情況和一起就是如下公式:

\[P(y|x,\theta ) = h_{\theta}(x)^y(1-h_{\theta}(x))^{1-y}

得到了\(y\)的機率分布函數表達式,我們就可以用似然函數最大化來求解我們需要的模型系數\(\theta\)。最大似然函數\(L(\theta)\):

\[L(\theta) = \prod\limits_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}

損失函數就是對數似然函數的負值

\[J(\theta) = -lnL(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)})))

2.4 邏輯回歸的損失函數的優化方法

對于邏輯回歸的損失函數極小化,有比較多的方法,最常見的有梯度下降法,坐标軸下降法,牛頓法等。

2.5 邏輯回歸的正則化

邏輯回歸也會面臨過拟合問題,是以我們也要考慮正則化。常見的有L1正則化和L2正則化。

L1正則化形式

\[J(\theta) = -lnL(\theta) + \alpha|\theta|

L2正則化形式

\[J(\theta) = -lnL(\theta) + \frac{1}{2}\alpha|\theta|^2

3. 總結

邏輯回歸假設資料服從伯努利分布,線上性回歸的基礎上,套了一個二分類的Sigmoid函數,使用極大似然法來推導出損失函數,用梯度下降法優化損失函數的一個判别式的分類算法。邏輯回歸的優缺點有一下幾點:

3.1 優點

  1. 實作簡單,廣泛的應用于工業問題上;
  2. 訓練速度較快。分類速度很快
  3. 記憶體占用少;
  4. 便利的觀測樣本機率分數,可解釋性強;

3.2 缺點

  1. 當特征空間很大時,邏輯回歸的性能不是很好;
  2. 一般準确度不太高
  3. 很難處理資料不平衡的問題

繼續閱讀