機器學習之Logistic迴歸

weixin_33807284發表於2018-03-28

1、所謂邏輯斯蒂迴歸

clipboard.png(1.1);

邏輯斯蒂迴歸就是想辦法將線性迴歸模型用於分類(《機器學習》中稱為對數機率迴歸)。線性迴歸模型產生的預測值可能是所有實值,不利於分類;為了用於二分類任務,希望將預測值z轉換為0/1值;階躍函式:
clipboard.png(1.2);

可以將z轉換為0/1值,但是階躍函式在x=0處不連續,所以用邏輯斯諦函式(logisitic function,即Sigmoid函式)
clipboard.png(1.3);

近似代替階躍函式,將線性模型的預測值轉換為接近0或1的值(Sigmoid函式的輸出值在z=0處變化很陡,可以認為大部分值都是接近0或1)。

2、公式

對公式(1.3)取對數,有
clipboard.png(2.1);

將y視為樣本x作為正例的可能性,1-y為反例。將y視為後驗概率估計,則二項邏輯斯蒂迴歸模型如下:
clipboard.png

令:
clipboard.png

由伯努利分佈的概率公式:
clipboard.png(2.6);

得似然函式和對數似然函式:
clipboard.png(2.7);
clipboard.png(2.8);

3、梯度上升法的程式碼與公式

其實只有這一節是我想寫的
clipboard.png
《機器學習實戰》第五章程式清單5-1下面程式碼的由來:

weights = weights + alpha * dataMatrix.transpose()* error

書中使用的是梯度上升法
clipboard.png(3.1)

,僅對該行程式碼做推導,對式(2.8)求關於w的偏導數,得:
clipboard.png(3.2)

所以,
clipboard.png是程式碼中列向量error的元素,xi屬於程式碼中矩陣dataMatrix。

4、參考資料

《機器學習》周志華
《統計學習方法》李航
《機器學習實戰》

相關文章