邏輯回歸模型

邏輯回歸模型

來自專欄機器學習入門筆記2 人贊了文章

邏輯回歸,即分類(classification),是監督式學習的基礎內容之一。和線性回歸不同,邏輯回歸輸出的是離散值,判斷一封郵件是否為垃圾郵件,判斷腫瘤是否為惡性等均屬於邏輯回歸問題。

邏輯回歸輸出的值只有0和1,因此,我們可以選取一個值域為[0,1]的函數作為邏輯回歸的基本模型,如果輸出值大於門檻值,那麼輸出1,反之輸出0。在邏輯回歸中,我們選取sigmoid函數作為這個基本模型,這個函數又稱作logistic函數。

sigmoid函數的表達式為: g(z)=frac{1}{1+e^{-z}}

邏輯回歸的假設是:給予不同的特徵不同的權重(這一點與線性回歸相同),並將最後的結果放入sigmoid函數中,即:

h_{	heta}(x)=sigmoid(	heta^TX)=frac{1}{1+e^{-	heta^TX}}

和線性回歸一樣,我們可以用代價函數來評估模型的準確性。由於邏輯回歸輸出的值只有0和1,我們也可以相應的把代價函數分為兩種情況:

egin{align*}& J(	heta) = dfrac{1}{m} sum_{i=1}^m mathrm{Cost}(h_	heta(x^{(i)}),y^{(i)}) 
ewline & mathrm{Cost}(h_	heta(x),y) = -log(h_	heta(x)) ; & 	ext{if y = 1} 
ewline & mathrm{Cost}(h_	heta(x),y) = -log(1-h_	heta(x)) ; & 	ext{if y = 0}end{align*}

當輸出的結果和實際結果相近時,該樣本的代價近似於0;當輸出的結果和實際結果相差甚遠時,該樣本的代價近似於∞。我們可以把上面的公式精簡為:

J(	heta)=frac{1}{m}sum_{i=1}^{m}[-y^{(i)}log(h_{	heta}(x^{(i)}))-(1-y^{(i)})log(1-h_{	heta}(x^{(i)}))]

為了得到最準確的模型,我們首先給 	heta 隨機賦一個值,並用梯度下降法得到最小的 J(	heta)

	heta_j:=	heta_j-alphafrac{?}{?	heta_j}J(Theta), j=1,2,...,n

經推導後可得:

	heta_j:=	heta_j-alphafrac{1}{m}sum_{i=1}^{m}(h_	heta(x^{(i)})-y^{(i)})x_j^{(i)}, j=1,2,...,n

重複以上過程直到收斂。

邏輯回歸梯度下降的公式和線性回歸梯度下降的公式相同,不同點在於兩種模型 h_{	heta}(x) 代表的含義不同,線性回歸中 h_{	heta}(x)=	heta^{T}x ,而邏輯回歸中 h_{	heta}(x)=frac{1}{1+e^{-	heta^TX}}

在實際編程中,為了讓代碼更加簡單,我們可以對代價函數和梯度下降公式進行向量化:

 h = g(X	heta)

J(	heta) = frac{1}{m} left(-y^{T}log(h)-(1-y)^{T}log(1-h)
ight)

	heta:=	heta-alphafrac{1}{m}X^T(h-y)

以上是解決二分類問題(binary classification)的全過程,在解決多分類問題(multi-class classification)時,我們可以用one-vs-all的方法分別算出 h_{	heta}(x)=1,2,...,n 的概率,並將x歸入可能性最大的一類。


推薦閱讀:

今日數據行業日報(2017.01.18)
《大數據和我們》讀後感
大數據評選全球最佳導演 張藝謀位居亞洲前列
愛車爸爸車主大數據分享
MaxCompute 中的Code Generation技術簡介

TAG:機器學習 | 數據分析 | 大數據 |