Logic回歸總結


轉自http://blog.csdn.net/dongtingzhizi/article/details/15962797

當我第一遍看完台大的機器學習的視頻的時候,我以為我理解了邏輯回歸,可后來越看越迷糊,直到看到了這篇文章,豁然開朗

基本原理

Logistic Regression和Linear Regression的原理是相似的,按照我自己的理解,可以簡單的描述為這樣的過程:

(1)找一個合適的預測函數(Andrew Ng的公開課中稱為hypothesis),一般表示為h函數,該函數就是我們需要找的分類函數,它用來預測輸入數據的判斷結果。這個過程時非常關鍵的,需要對數據有一定的了解或分析,知道或者猜測預測函數的“大概”形式,比如是線性函數還是非線性函數。

(2)構造一個Cost函數(損失函數),該函數表示預測的輸出(h)與訓練數據類別(y)之間的偏差,可以是二者之間的差(h-y)或者是其他的形式。綜合考慮所有訓練數據的“損失”,將Cost求和或者求平均,記為J(θ)函數,表示所有訓練數據預測值與實際類別的偏差。

(3)顯然,J(θ)函數的值越小表示預測函數越准確(即h函數越准確),所以這一步需要做的是找到J(θ)函數的最小值。找函數的最小值有不同的方法,Logistic Regression實現時有的是梯度下降法(Gradient Descent)。

具體過程

(1)  構造預測函數

Logistic Regression雖然名字里帶“回歸”,但是它實際上是一種分類方法,用於兩分類問題(即輸出只有兩種)。根據第二章中的步驟,需要先找到一個預測函數(h),顯然,該函數的輸出必須是兩個值(分別代表兩個類別),所以利用了Logistic函數(或稱為Sigmoid函數),函數形式為:

          

對應的函數圖像是一個取值在0和1之間的S型曲線(圖1)。 

圖1

 接下來需要確定數據划分的邊界類型,對於圖2和圖3中的兩種數據分布,顯然圖2需要一個線性的邊界,而圖3需要一個非線性的邊界。接下來我們只討論線性邊界的情況。 

圖2 

 

圖3 

對於線性邊界的情況,邊界形式如下: 

構造預測函數為: 

hθ(x)函數的值有特殊的含義,它表示結果取1的概率,因此對於輸入x分類結果為類別1和類別0的概率分別為:

(2)構造Cost函數

Andrew Ng在課程中直接給出了Cost函數及J(θ)函數如式(5)和(6),但是並沒有給出具體的解釋,只是說明了這個函數來衡量h函數預測的好壞是合理的。

 

實際上這里的Cost函數和J(θ)函數是基於最大似然估計推導得到的。下面詳細說明推導的過程。(4)式綜合起來可以寫成:

 

取似然函數為:

對數似然函數為:

最大似然估計就是要求得使l(θ)取最大值時的θ,其實這里可以使用梯度上升法求解,求得的θ就是要求的最佳參數。但是,在Andrew Ng的課程中將J(θ)取為(6)式,即:

 

因為乘了一個負的系數-1/m,所以J(θ)取最小值時的θ為要求的最佳參數。 

(3)梯度下降法求J(θ)的最小值

J(θ)的最小值可以使用梯度下降法,根據梯度下降法可得θ的更新過程:

    

式中為α學習步長,下面來求偏導:

上式求解過程中用到如下的公式:

 

因此,(11)式的更新過程可以寫成:

 

因為式中α本來為一常量,所以1/m一般將省略,所以最終的θ更新過程為:

之后,參數更新為:

 

終止條件:

目前指定迭代次數。后續會談到更多判斷收斂和確定迭代終點的方法。


另外,補充一下,3.2節中提到求得l(θ)取最大值時的θ也是一樣的,用梯度上升法求(9)式的最大值,可得:

 

  

 

觀察上式發現跟(14)是一樣的,所以,采用梯度上升發和梯度下降法是完全一樣的,這也是《機器學習實戰》中采用梯度上升法的原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM