Logistic本質上是一個基於條件概率的判別模型(DiscriminativeModel)。
函數圖像為:
通過sigma函數計算出最終結果,以0.5為分界線,最終結果大於0.5則屬於正類(類別值為1),反之屬於負類(類別值為0)。
如果將上面的函數擴展到多維空間,並且加上參數,則函數變成:
接下來問題來了,如何得到合適的參數向量θ呢?
由於sigma函數的特性,我們可作出如下的假設:
上式即為在已知樣本X和參數θ的情況下,樣本X屬性正類(y=1)和負類(y=0)的條件概率。
將兩個公式合並成一個,如下:
既然概率出來了,那么最大似然估計也該出場了。假定樣本與樣本之間相互獨立,那么整個樣本集生成的概率即為所有樣本生成概率的乘積:
為了簡化問題,我們對整個表達式求對數,(將指數問題對數化是處理數學問題常見的方法):
滿足似然函數(θ)的最大的θ值即是我們需要求解的模型。
梯度上升算法
就像爬坡一樣,一點一點逼近極值。爬坡這個動作用數學公式表達即為:
其中,α為步長。
回到Logistic Regression問題,我們同樣對函數求偏導。
先看:
其中:
再由:
可得:
接下來就剩下第三部分:
(這個公式應該很容易理解,簡單的偏導公式)
還有就是:
綜合三部分即得到:
因此,梯度迭代公式為:
結合本式再去理解《機器學習實戰》Page 78中的代碼就很簡單了。
摘自:http://sbp810050504.blog.51cto.com/2799422/1608064