簡介
Logistic回歸是機器學(xué)習(xí)中最常用最經(jīng)典的分類方法之一芥丧,有的人稱為邏輯回歸或邏輯斯蒂回歸宪摧。雖然它稱為回歸模型,但是卻處理的是分類問題宏赘,這主要是因為它的本質(zhì)是一個線性模型加上一個映射函數(shù)sigmoid奈泪,將線性模型得到的連續(xù)結(jié)果映射到離散型上适贸。它常用于二分類問題,在多分類問題的推廣叫做softmax段磨。
注:以下圖片或者公式取自不同地方取逾,所以符號有所不同,我會在每個公式或圖片下說明不同符號代表的意思苹支。
Logisitc回歸
由于Logistic回歸是將線性模型的輸出θx+b經(jīng)過f(z)數(shù)處理后,映射到離散值上形成分類問題误阻,所以我們可以假設(shè)分類值y={0债蜜,1},所以Logistic回歸模型可以寫成:h(x)=f(θx+b) 究反,也就是當(dāng)θx+b的值大于0時h(x)=+1寻定,當(dāng)θx+b的值小于0時h(x)=-1。但是這樣的f(z)函數(shù)稱為單位階躍函數(shù)精耐,但是它的數(shù)學(xué)性質(zhì)不好狼速,不連續(xù)也不方便求導(dǎo),所以我們使用它的替代函數(shù)sigmoid函數(shù)也叫s型函數(shù)卦停,我們用g(x)表示向胡。這樣線性模型的輸出經(jīng)過sigmoid的映射就變成了求出樣本屬于哪一類別的概率,即θx+b大于0的話惊完,那么樣本屬于分類1的概率大一點僵芹,如果θx+b小于0的話就是樣本屬于1的概率小屬于類別0的概率大一些。圖1是單位階躍函數(shù)(紅線)與sigmoid函數(shù)(黑線)小槐。
sigmoid的函數(shù)表達式為:
其中z在Logistic回歸中就是θx+b拇派。那么為什么要用sigmoid函數(shù)呢?
sigmoid函數(shù)
從概率的角度看Logistic回歸凿跳,如果將樣本分為正類的概率看成h(x)件豌,那么分為負類的概率就是1-h(x),則Logistic回歸模型的概率表達式符合0-1分布:
對上式結(jié)合就是Logistic回歸的概率分布函數(shù)控嗜,也就是從概率角度的目標(biāo)函數(shù):
我們對該式進行變換茧彤,可以得到指數(shù)族分布,最后可以得出函數(shù)h(x)就是sigmoid函數(shù)躬审。以下是推導(dǎo)過程:
其中圖5中的p是圖4中的h(x)棘街,而圖5的z是線性模型的輸出θx+b蟆盐。這樣從指數(shù)族分布就可以推出sigmoid函數(shù)。換一個思路遭殉,我們將一個事件發(fā)生的概率p與其不發(fā)生的概率1-p的比值叫做幾率石挂,對其取對數(shù)后稱為對數(shù)幾率(logit):
令它等于線性函數(shù)θx+b,最后也可以推出p就是sigmoid函數(shù)险污,也就是圖5的后半段痹愚,這樣說明了sigmoid函數(shù)的值是概率值。另外蛔糯,如果我們不讓對數(shù)幾率函數(shù)等于線性函數(shù)拯腮,讓他等于其他的函數(shù)呢?這也是可以的蚁飒,只不過是sigmoid函數(shù)中z的表達方式改變而已动壤。
求解Logistic回歸模型參數(shù)
我們重新整理一下Logistic回歸的目標(biāo)函數(shù),他的最終形式為:
因為這是一個概率問題淮逻,所以我們可以使用極大似然估計的方式求解Logistic回歸的參數(shù)θ琼懊。以下是求導(dǎo)過程:
其中g(shù)()函數(shù)是sigmoid函數(shù),它的導(dǎo)數(shù)為:
這樣圖8得到的結(jié)果就是關(guān)于θ的梯度爬早,我們通過梯度提升算法(因為目標(biāo)函數(shù)是最大似然估計哼丈,求極大值所以用梯度上升,如果想用梯度下降筛严,可以對似然函數(shù)取負就是求極小值)更新θ醉旦,最后就求出Logistic回歸模型的參數(shù)θ,這與線性回歸方法相同(有沒有發(fā)現(xiàn)他們的更新梯度的目標(biāo)函數(shù)也相同)桨啃。
以上就是Logistic回歸模型的建立與參數(shù)估計過程车胡,下面我們要說一下他在多分類問題中的推廣----softmax回歸。
softmax
softmax與Logistic回歸的主要區(qū)別就是优幸,Logistic處理二分類問題吨拍,只有一組權(quán)重參數(shù)θ。而softmax處理多分類問題网杆,如果有k個類別羹饰,那么softmax就有k組權(quán)值參數(shù)。每組權(quán)值對應(yīng)一種分類碳却,通過k組權(quán)值求解出樣本數(shù)據(jù)對應(yīng)每個類別的概率队秩,最后取概率最大的類別作為該數(shù)據(jù)的分類結(jié)果。它的概率函數(shù)為:
softmax經(jīng)常用于神經(jīng)網(wǎng)絡(luò)的最后一層昼浦,用于對神經(jīng)網(wǎng)絡(luò)已經(jīng)處理好的特征進行分類馍资。
個人實現(xiàn)了一個二分類的邏輯回歸,并與sklearn中的logistic回歸做對比:
數(shù)據(jù)只使用了鳶尾花數(shù)據(jù)的0/1兩個類別关噪,由于本代碼實現(xiàn)的比較簡單鸟蟹,只能處理類別為0/1的數(shù)據(jù)乌妙,有興趣的朋友可以自己做補充,本代碼只做參考建钥。
詳細代碼可參考Github:代碼鏈接
參考書籍:
《機器學(xué)習(xí)》 周志華? 著
《統(tǒng)計學(xué)習(xí)方法》 李航? 著