轉載請注明出自BYRans博客:http://www.cnblogs.com/BYRans/
本文主要講解分類問題中的邏輯回歸。邏輯回歸是一個二分類問題。
二分類問題
二分類問題是指預測的y值只有兩個取值(0或1),二分類問題可以擴展到多分類問題。例如:我們要做一個垃圾郵件過濾系統,是郵件的特征,預測的y值就是郵件的類別,是垃圾郵件還是正常郵件。對於類別我們通常稱為正類(positive class)和負類(negative class),垃圾郵件的例子中,正類就是正常郵件,負類就是垃圾郵件。
邏輯回歸
Logistic函數
如果我們忽略二分類問題中y的取值是一個離散的取值(0或1),我們繼續使用線性回歸來預測y的取值。這樣做會導致y的取值並不為0或1。邏輯回歸使用一個函數來歸一化y值,使y的取值在區間(0,1)內,這個函數稱為Logistic函數(logistic function),也稱為Sigmoid函數(sigmoid function)。函數公式如下:
Logistic函數當z趨近於無窮大時,g(z)趨近於1;當z趨近於無窮小時,g(z)趨近於0。Logistic函數的圖形如下:
Logistic函數求導時有一個特性,這個特性將在下面的推導中用到,這個特性為:
邏輯回歸表達式
邏輯回歸本質上是線性回歸,只是在特征到結果的映射中加入了一層函數映射,即先把特征線性求和,然后使用函數g(z)將最為假設函數來預測。g(z)可以將連續值映射到0到1之間。線性回歸模型的表達式帶入g(z),就得到邏輯回歸的表達式:
依照慣例,讓,表達式就轉換為:
邏輯回歸的軟分類
現在我們將y的取值通過Logistic函數歸一化到(0,1)間,y的取值有特殊的含義,它表示結果取1的概率,因此對於輸入x分類結果為類別1和類別0的概率分別為:
對上面的表達式合並一下就是:
梯度上升
得到了邏輯回歸的表達式,下一步跟線性回歸類似,構建似然函數,然后最大似然估計,最終推導出θ的迭代更新表達式。這個思路不清楚的請參考文章《線性回歸、梯度下降》,只不過這里用的不是梯度下降,而是梯度上升,因為這里是最大化似然函數不是最小化似然函數。
我們假設訓練樣本相互獨立,那么似然函數表達式為:
同樣對似然函數取log,轉換為:
轉換后的似然函數對θ求偏導,在這里我們以只有一個訓練樣本的情況為例:
這個求偏導過程第一步是對θ偏導的轉化,依據偏導公式:y=lnx y'=1/x。
第二步是根據g(z)求導的特性g'(z) = g(z)(1 - g(z)) 。
第三步就是普通的變換。
這樣我們就得到了梯度上升每次迭代的更新方向,那么θ的迭代表達式為:
這個表達式與LMS算法的表達式相比,看上去完全相同,但是梯度上升與LMS是兩個不同的算法,因為表示的是關於
的一個非線性函數。
兩個不同的算法,用同一個表達式表達,這並不僅僅是巧合,兩者存在深層的聯系。這個問題,我們將在廣義線性模型GLM中解答。