邏輯回歸(LogisticRegression)推導與實戰

邏輯回歸(Logistic Regression)

邏輯回歸常被用於估計一個事物屬於某個類別的概率。比如說,一封郵件是垃圾郵件的概率。如果說這個概率大於50%,那麼就認為它屬於這個類別,小於50%就不屬於這個類別,也就是做了一個二分類。Logistic回歸的因變數可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。所以實際中最常用的就是二分類的Logistic回歸。

和線性回歸問題類似,我們分析邏輯回歸還是從以下三個步驟著手操作:

  • 尋找Hypothesis函數;
  • 構造Loss Function;
  • 求得Loss Function最小值,並得到回歸參數。

同樣的,和線性回歸模型類似,邏輯回歸模型也是計算輸入中各個特徵的權重和(加上bias term,即 	heta _0 ),不同的是,線性回歸直接返回了預測結果,而邏輯回歸返回的是結果的logistic概率。

所以,我們構造Hypothesis函數為

h_{	heta}left( oldsymbol{x} 
ight) =gleft( oldsymbol{	heta }^{oldsymbol{T}}oldsymbol{x} 
ight) =frac{1}{1+e^{-oldsymbol{	heta }^{oldsymbol{T}}oldsymbol{x}}}

其中函數  gleft( x 
ight) =frac{1}{1+e^{-x}} 就是sigmoid function,函數圖像如圖所示:

在這裡, h_{	heta}left( oldsymbol{x} 
ight) 表示為結果取1的概率,所以

Pleft( y=1|x;	heta 
ight) =h_{	heta}left( oldsymbol{x} 
ight)

 Pleft( y=0|x;	heta 
ight) =1-h_{	heta}left( oldsymbol{x} 
ight)

因為各個觀測樣本之間相互獨立,那麼它們的聯合分布為各邊緣分布的乘積。得到似然函數為

 Lleft( 	heta 
ight) =prod_{i=1}^m{h_{	heta}left( x_i 
ight) ^{y_i}}left[ 1-h_{	heta}left( x_i 
ight) 
ight] ^{1-y_i}

接下來我們的目的就是求解似然函數的最大值,對上式兩邊取對數,得到

 ln left[ Lleft( 	heta 
ight) 
ight] =sum_{i=1}^m{y_iln left[ h_{	heta}left( x_i 
ight) 
ight] +left( 1-y_i 
ight) ln left[ 1-h_{	heta}left( x_i 
ight) 
ight]}

所以,我們就可以構造Loss Functionl如下式

 Jleft( 	heta 
ight) =-frac{1}{m}sum_{i=1}^m{y_iln left[ h_{	heta}left( x_i 
ight) 
ight] +left( 1-y_i 
ight) ln left[ 1-h_{	heta}left( x_i 
ight) 
ight]}

加上-1/m,求解  Jleft( 	heta 
ight) 的最小值,也就是求解似然函數的最大值,主要是為了方便後面的梯度下降法。所以使用梯度下降法求解,其更新函數為

 	heta _j:=	heta _j-alpha frac{partial}{partial 	heta}Jleft( 	heta 
ight)

 frac{partial}{partial 	heta}Jleft( 	heta 
ight) =frac{1}{m}sum_{i=1}^m{left[ h_{	heta}left( x_i 
ight) -y_i 
ight]}x_{i}^{j}

下面我們用Iris數據集在sklearn上來實操一下。通過使用Iris數據集里的花瓣寬度(patal width)來判斷這多鳶尾花是否為Virginica類型的。一個簡單的二分類問題。


推薦閱讀:

2-2 Cost Function
複習:決策樹
反向傳播演算法和梯度下降理解
[貝葉斯四]之貝葉斯分類器設計
Hands-On ML,CH2:房價預測

TAG:機器學習 | 人工智慧演算法 |