許多問題需要將概率估算值作為輸出。由于線性回歸無法保證輸出值表示概率(介于零和一之間),所以需要引入除了線性回歸之外的另一種回歸模型:邏輯回歸——它是一種極其高效的概率計算機制。那么邏輯回歸如何保證其輸出表示概率?
1. 邏輯回歸如何計算概率?
碰巧,有一族函數稱為“邏輯函數”,其輸出滿足上述條件。標準邏輯函數/S 型函數(sigmoid表示S型)是其中之一,其公式為$y'=\frac{1}{1+e^{-z}}$。z代表該線性回歸輸出,又稱對數幾率(log odds)。為什么叫對數幾率?因為$y'=f(z)$的反函數$z=\log \frac{y}{1-y}$滿足定義。
2. 邏輯回歸使用何種損失函數?
線性回歸所用的損失函數見線性回歸(Linear Regression)。邏輯回歸不能照搬。為何?
先看一下表中標準S型函數輸入較大時的邏輯輸出值,以及捕捉到輸出隨輸入發生了變化所需的輸出保留精度位數。
| 輸入 | 邏輯輸出 | 所需精度位數 |
|---|---|---|
| 5 | 0.993 | 3 |
| 6 | 0.997 | 3 |
| 7 | 0.999 | 3 |
| 8 | 0.9997 | 4 |
| 9 | 0.9999 | 4 |
| 10 | 0.99998 | 5 |
倘若再使用平方型損失函數,所需精度位數會加倍。
邏輯回歸采用對數損失函數,計算公式為:$\text{Log Loss} = \sum_{(x,y)\in D} -y\log(y') - (1 - y)\log(1 - y')$,其中:
- $(x,y)\in D$是包含多個有標簽樣本的數據集,這些樣本為$(x,y)$對;
- $y$是有標簽樣本中的標簽。由于這是邏輯回歸,$y$的每個值都必須為0或1;
- $y'$是給定$x$中的特征的條件下,模型的預測結果(介于零和一之間)。
- 如果你看不懂這個公式,筆者不推薦你去看@王冰冰 寫的似然(likelihood)和NLLLoss 。因為他拿了個單分類的特殊情況對公式作了簡化,不具代表性。
注意到,上述損失函數的定義與熵的定義很類似。
3. 前瞻
正則化:如果沒有正則化,當模型具有大量特征時,邏輯回歸的漸近性質將使損失不斷趨向于 0。那么損失趨向于0有什么壞處呢?有人覺得這會導致過擬合。
大多數邏輯回歸模型采用L2正則化或者早停法降低模型復雜度。
浙公網安備 33010602011771號