1. 程式人生 > >機器學習演算法2_邏輯迴歸

機器學習演算法2_邏輯迴歸

文章目錄

1 邏輯迴歸

1.1 概念

  • 處理二分類問題
  • 邏輯迴歸是廣義的線性迴歸
  • 將資料集帶入Sigmoid分佈函式,得到的結果大於0.5則判斷為1,否則為0

1.2 推導方法

1.2.1 模型 - Sigmoid 分佈函式

資料集
(1) z i

= w 0 x 0 + w 1 x 1 + + w i x i = w T x z_{i} = {w_0}{x_0} + {w_1}{x_1} + \cdots + {w_i}{x_i} = {w^T}x \tag1
z i z_i 與線性迴歸模型很相似,一般情況下: w 0 = b w_0=b , x 0 = 1 x_0=1 ,也就是對應著線性函式中的截距項。

Sigmoid 分佈函式
(2) f ( z i ) = 1 1 + e z i f(z_{i})=\frac{1}{1+e^{-z_{i}}} \tag2
對每一個特徵 x x 乘上係數 w w ,然後通過 Sigmoid 函式計算 f ( z ) f(z) 值得到概率。其中, z z 可以被看作是分類邊界,即將公式(1)代入公式(2)得到:
(3) h w ( x ) = f ( w T x ) = 1 1 + e w T x h_{w}(x) = f({w^T}x) = \frac{1}{1+e^{{w^T}x}} \tag3

Sigmoid 函式影象

(4) y i = { 0 h w ( x ) < 0.5 1 h w ( x ) 0.5 y_i = \left\{\begin{matrix} 0 & h_w(x) < 0.5\\ 1 & h_w(x) \geq 0.5 \end{matrix}\right. \tag4

1.2.2 目標函式 - 對數損失函式

(5) J ( w ) = 1 m i = 1 m [ y i log ( h w ( x i ) ) + ( 1 y i ) log ( 1 h w ( x i ) ) ] J(w) = - \frac{1}{m} \sum_{i=1}^m \left [ y_i \log (h_{w}(x_i)) + (1-y_i) \log(1-h_{w}(x_i)) \right ]\tag5
目標就是求得 公式(5) 對數損失函式的 最小值
由於非凸函式,不能像最小二乘法求得全域性最小值,所以需要用到梯度下降演算法求解

1.2.3 求解方法

1.2.3.1 梯度下降法

針對公式(5)求導,得到梯度下降的方向
(5) J w = 1 m X T ( h w ( x ) y ) \frac{\partial{J}}{\partial{w}} = \frac{1}{m}X^T(h_{w}(x)-y) \tag5
得到梯度的方向後,會定義一個 常數 α \alpha (學習率 Learning Rate),執行權重更新:
(6) w w α J w w \leftarrow w - \alpha \frac{\partial{J}}{\partial{w}} \tag6

如下圖,每次更新 w 0 w_0 w 1 w_1 , w 2 w_2 … 直到獲得最優解w*

不斷更新w的過程,即是:

(7) w w α 1 m X T ( h w ( x ) y ) w {\color{Magenta} \Longleftarrow} w - \alpha \frac{1}{m}X^T(h_{w}(x)-y) \tag7