1. 程式人生 > >機器學習筆記(五)—— 邏輯迴歸

機器學習筆記(五)—— 邏輯迴歸

邏輯迴歸演算法是二分類問題中最常用的幾種分類演算法之一,通過變形,也能夠在多分類問題中發揮餘熱。今天我將從向大家揭開這個簡單演算法的神祕面紗!

一、Sigmoid函式

在迴歸問題中,我們曾經提到,對於資料集 X X ,我們可以找到合適的係數 W W

使其通過 W X WX 來預測結果 Y Y
在這裡插入圖片描述
邏輯迴歸的思路與迴歸演算法一致,我們需要找到一個合適的係數 W
W
,通過 W X WX 來得到一個結果 Y Y ,然後對 Y
Y
進行判斷,從而得到分類結果。因此,如果來判斷 Y Y 便是邏輯迴歸最重要的一個點。

Sigmoid函式的 y y 值分佈在 [ 0 , 1 ] [0,1] 之間,它的函式表示式為 y = 1 1 + e x y = \frac{1}{1+e^{-x}} ,影象如下圖所示。
在這裡插入圖片描述
也就是說,對於n維資料集 X X ,如果我能夠找到合適的係數 W W ,並將 W X WX 代入Sigmoid函式中,使得結果 Y = s i g m o i d ( W X ) Y = sigmoid(WX) [ 0 , 1 ] [0,1] 範圍內分佈,大小代表了樣本為正樣本的概率。例如 Y ( X ) = 0.8 Y(X) = 0.8 ,說明該樣本有80%的可能性為正樣本,有20%的可能性為負樣本。通過這種方法,我們就能夠對樣本集進行二分類操作。

二、邏輯迴歸的損失函式

當我們確定好邏輯迴歸的模型 y = 1 1 + e W X y = \frac{1}{1 + e^{-WX}} 後,我們接下來的任務就是如何去評價這個模型的好壞,也就是找打一個損失函式,來表示預測的輸出 Y p r e d i c t Y_{predict} 和訓練資料類別 Y t r u e Y_{true} 之間的區別。

2.1 最大似然估計

假設對於給定的資料集 D = [ ( X ( 1 ) , y ( 1 ) ) , . . . . . , ( X ( m ) , y ( m ) ) ] D =[ {(X^{(1)},y^{(1)}),.....,(X^{(m)},y^{(m)})]}
預測函式為: h ( X ) = 1 1 + e W X h(X) = \frac{1}{1 + e^{-WX}}
則對對於輸入X其分類結果為1和為0的概率分別為:
P ( y = 1 X ; W ) = h ( X ) P(y=1| X;W) = h(X)
P ( y = 0 X ; W ) = 1 h ( X ) P(y=0| X;W) = 1 - h(X) (注:預設類別1為正類別)
即: P ( y X ; W ) = ( h ( X ) ) y ( 1 h ( X ) ) 1 y P(y|X;W) = (h(X))^y(1-h(X))^{1-y}
那麼基於最大似然估計,得到似然函式:
L ( W ) = i = 1 m P ( y ( i ) X ( i ) ; W ) = ( h ( X ( i ) ) ) y ( i ) ( 1 h ( X ( i ) ) ) 1 y ( i ) L(W) = \prod_{i=1}^{m}P(y^{(i)}|X^{(i)};W) = (h(X^{(i)}))^{y^{(i)}}(1-h(X^{(i)}))^{1 - y^{(i)}}
對數似然函式則為:
l ( W ) = l o g L ( W ) = i = 1 m ( y ( i ) l o g h ( X ( i ) ) + ( 1 y ( i ) ) l o g ( 1 h ( X ( i ) ) ) l(W) = log L(W) = \sum_{i=1}^{m} (y^{(i)} log h(X^{(i)})+(1 - y^{(i)})log(1 - h(X^{(i)}))
也就是說,如果我們希望 Y p r e d i c t Y_{predict} Y t r u e Y_{true} 之間的差別最小,那麼我們需要使最大對數似然函式 l ( W ) l(W) 取最大值,此時我們所求得的 W W 就是我們所需要的係數。

所以我們的損失函式為: