機器學習-Logistic回歸


簡介

Logistic回歸是機器學習中最常用最經典的分類方法之一,有的人稱為邏輯回歸或邏輯斯蒂回歸。雖然它稱為回歸模型,但是卻處理的是分類問題,這主要是因為它的本質是一個線性模型加上一個映射函數sigmoid,將線性模型得到的連續結果映射到離散型上。它常用於二分類問題,在多分類問題的推廣叫做softmax。

注:以下圖片或者公式取自不同地方,所以符號有所不同,我會在每個公式或圖片下說明不同符號代表的意思。

Logisitc回歸

由於Logistic回歸是將線性模型的輸出θx+b經過f(z)數處理后,映射到離散值上形成分類問題,所以我們可以假設分類值y={0,1},所以Logistic回歸模型可以寫成:h(x)=f(θx+b) ,也就是當θx+b的值大於0時h(x)=+1,當θx+b的值小於0時h(x)=-1。但是這樣的f(z)函數稱為單位階躍函數,但是它的數學性質不好,不連續也不方便求導,所以我們使用它的替代函數sigmoid函數也叫s型函數,我們用g(x)表示。這樣線性模型的輸出經過sigmoid的映射就變成了求出樣本屬於哪一類別的概率,即θx+b大於0的話,那么樣本屬於分類1的概率大一點,如果θx+b小於0的話就是樣本屬於1的概率小屬於類別0的概率大一些。圖1是單位階躍函數(紅線)與sigmoid函數(黑線)。


圖1

sigmoid的函數表達式為:


圖2

其中z在Logistic回歸中就是θx+b。那么為什么要用sigmoid函數呢?

sigmoid函數

從概率的角度看Logistic回歸,如果將樣本分為正類的概率看成h(x),那么分為負類的概率就是1-h(x),則Logistic回歸模型的概率表達式符合0-1分布:


圖3

對上式結合就是Logistic回歸的概率分布函數,也就是從概率角度的目標函數:


圖4

我們對該式進行變換,可以得到指數族分布,最后可以得出函數h(x)就是sigmoid函數。以下是推導過程:


圖5

其中圖5中的p是圖4中的h(x),而圖5的z是線性模型的輸出θx+b。這樣從指數族分布就可以推出sigmoid函數。換一個思路,我們將一個事件發生的概率p與其不發生的概率1-p的比值叫做幾率,對其取對數后稱為對數幾率(logit):


圖6

令它等於線性函數θx+b,最后也可以推出p就是sigmoid函數,也就是圖5的后半段,這樣說明了sigmoid函數的值是概率值。另外,如果我們不讓對數幾率函數等於線性函數,讓他等於其他的函數呢?這也是可以的,只不過是sigmoid函數中z的表達方式改變而已。

求解Logistic回歸模型參數

我們重新整理一下Logistic回歸的目標函數,他的最終形式為:


圖7

因為這是一個概率問題,所以我們可以使用極大似然估計的方式求解Logistic回歸的參數θ。以下是求導過程:


圖8

其中g()函數是sigmoid函數,它的導數為:


圖9

這樣圖8得到的結果就是關於θ的梯度,我們通過梯度提升算法(因為目標函數是最大似然估計,求極大值所以用梯度上升,如果想用梯度下降,可以對似然函數取負就是求極小值)更新θ,最后就求出Logistic回歸模型的參數θ,這與線性回歸方法相同(有沒有發現他們的更新梯度的目標函數也相同)。


圖10

以上就是Logistic回歸模型的建立與參數估計過程,下面我們要說一下他在多分類問題中的推廣----softmax回歸。

softmax

softmax與Logistic回歸的主要區別就是,Logistic處理二分類問題,只有一組權重參數θ。而softmax處理多分類問題,如果有k個類別,那么softmax就有k組權值參數。每組權值對應一種分類,通過k組權值求解出樣本數據對應每個類別的概率,最后取概率最大的類別作為該數據的分類結果。它的概率函數為:


圖11

softmax經常用於神經網絡的最后一層,用於對神經網絡已經處理好的特征進行分類。

個人實現了一個二分類的邏輯回歸,並與sklearn中的logistic回歸做對比:


圖12

數據只使用了鳶尾花數據的0/1兩個類別,由於本代碼實現的比較簡單,只能處理類別為0/1的數據,有興趣的朋友可以自己做補充,本代碼只做參考。

詳細代碼可參考Github:代碼鏈接

參考書籍:

 個人博客

《機器學習》 周志華  著

《統計學習方法》 李航  著


免責聲明!

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



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