邏輯迴歸的想法是用迴歸的方法來解決分類問題,然而直接用線性迴歸達不到我們想要的效果如下圖(原因不再贅述),所以我們選取了sigmoid函數來進行擬合,原因以後闡述。
所以我們選擇瞭如下的函數來擬合:
然而,應該怎樣定義它的CostFunction呢?同樣,線性迴歸爲何選用最小二乘法的CostFunction?
先給出不準確的定義:這個Cost函數就只有一個極值點,且爲極小值(如何判斷?導數爲0點只有一個,且當x大於極值點時,導數恆大於0,所有的能用梯度下降來擬合的函數必須滿足這一關係)
其實,CostFunction的選取來源於極大似然估計:
以線性迴歸爲例:
我們可以把y表示成以下形式:
其中最後的誤差項代表我們未考慮的因素帶來的誤差(比如預測房價是我們沒有考慮採光這一特徵),且假設這個誤差項服從均值爲0的高斯分佈,那麼誤差項的概率密度爲:
那麼,預測出來的y的概率密度爲:
以下,我們要用最大似然估計來確定theta的值,是我們預測的結果概率最大(具體參見概率密度定義):
用對應公式求得:
取對數得到costFunction:
可知,要使上式最大就是是減號後面的部分最小,即得到了我們需要的CostFunction!
邏輯迴歸也是一樣,,只是不是梯度下降,是梯度上升,如下:
最大似然估計爲:
取對數得到CostFuction:
這回,theta需要使上式最大!很明顯,上式只有一個極大值,應該是梯度上升!所以得到:
得到theta的更新式爲:
綜上:logistic迴歸與線性迴歸還是有很大的區別的,不僅在於擬合曲線不一樣,CostFunction也不同,只是最後換算後theta的更新表達式相同罷了,具體是巧合還是必然,待研究以後來此說明。
具體的代碼參見下一篇博文,思路參見點擊打開鏈接