1. 程式人生 > >徹底搞懂邏輯斯蒂迴歸

徹底搞懂邏輯斯蒂迴歸

線上性感知器演算法中,我們使用了一個f(x)=x函式,作為激勵函式,而在邏輯斯蒂迴歸中,我們將會採用sigmoid函式作為激勵函式,所以它被稱為sigmoid迴歸也叫對數機率迴歸(logistic regression),需要注意的是,雖然它的名字中帶有迴歸,但事實上它並不是一種迴歸演算法,而是一種分類演算法。它的優點是,它是直接對分類的可能性進行建模的,無需事先假設資料分佈,這樣就避免了假設分佈不準確所帶來的問題,因為它是針對於分類的可能性進行建模的,所以它不僅能預測出類別,還可以得到屬於該類別的概率。除此之外,sigmoid函式它是任意階可導的凸函式。在這篇文章中,將會使用到梯度上升演算法,可能有很多同學學到這裡會有點迷糊,之前我們所使用的是,梯度下降演算法為什麼到這裡卻使用的是梯度上升演算法?

一、邏輯斯蒂迴歸

邏輯斯蒂迴歸是針對線性可分問題的一種易於實現而且效能優異的分類模型,是使用最為廣泛的分類模型之一。假設某件事發生的概率為p,那麼這件事不發生的概率為(1-p),我們稱p/(1-p)為這件事情發生的機率。取這件事情發生機率的對數,定義為logit(p),所以logit(p)為


因為logit函式的輸入取值範圍為[0,1](因為p為某件事情發生的概率),所以通過logit函式可以將輸入區間為[0,1]轉換到整個實數範圍內的輸出,log函式影象如下


將對數機率記為輸入特徵值的線性表示式如下:


其中,p(y=1|x)為,當輸入為x時,它被分為1類的概率為p,也屬於1類別的條件概率。而,實際上我們需要的是給定一個樣本的特徵輸入x,而輸出是一個該樣本屬於某類別的概率。所以,我們取logit函式的反函式,也被稱為logistic函式也就是sigmoid函式



ϕ(z)中的z為樣本特徵與權重的線性組合。通過函式影象可以發現sigmoid函式的幾個特點,當z趨於正無窮大的時候,ϕ(z)趨近於1,因為當z趨於無窮大的時候,e^(-z)趨於零,所以分母會趨於1,當z趨於負無窮大的時候,e^(-z)會趨於正無窮大,所以ϕ(z)會趨於0。如在預測天氣的時候,我們需要預測出明天屬於晴天和雨天的概率,已知根天氣相關的特徵和權重,定義y=1為晴天,y=-1為雨天,根據天氣的相關特徵和權重可以獲得z,然後再通過sigmoid函式可以獲取到明天屬於晴天的概率ϕ(z)=P(y=1|x),如果屬於晴天的概率為80%,屬於雨天的概率為20%,那麼當ϕ(z)>=0.8時,就屬於雨天,小於0.8時就屬於晴天。我們可以通過以往天氣的特徵所對應的天氣,來求出權重和ϕ(z)的閾值,也就是天氣所說的0.8。邏輯斯蒂迴歸除了應用於天氣預測之外,還可以應用於某些疾病預測,所以邏輯斯蒂迴歸在醫療領域也有廣泛的應用。

二、求邏輯斯蒂迴歸的權重

線上性感知器中,我們通過梯度下降演算法來使得預測值與實際值的誤差的平方和最小,來求得權重和閾值。前面我們提到過某件事情發生的機率為p/(1-p),而在邏輯斯蒂迴歸中所定義的代價函式就是使得該件事情發生的機率最大,也就是某個樣本屬於其真實標記樣本的概率越大越好。如,一個樣本的特徵x所對應的標記為1,通過邏輯斯蒂迴歸模型之後,會給出該樣本的標記為1和為-1的概率分別是多少,我們當然希望模型給出該樣本屬於1的概率越大越好,正因為我們的代價函式需要求的是最大值,所以後面會使用到梯度上升演算法而不是梯度下降演算法。為了求得記錄的最大值,我們需要使用最大似然函式L,假定資料集中的每個樣本都是相互獨立的,L(w)的計算公式如下


通過上面的公式可以發現,當似然函式的值非常小的晚上好,可以會出現數值溢位的情況為了降低這種情況發生的可能性和方便對似然函式進行最大化處理,取似然函式的對數


通過梯度上升演算法求最大化似然函式的對數或者在將似然函式的對數乘以-1使用梯度下降演算法進行最小化,通過上面的公式可以發現,當y=0的時候,第一項為0,當y=1的時候第二項為0,損失函式如下



通過上圖,可以觀察到,當樣本被正確的劃分的時候損失函式是接近與0的,當樣本被錯誤的劃分的時候損失函式是趨於無窮大,這就意味著錯誤的預測所帶來的代價將會越來越大,相對於之前的線性感知器而言,logistic迴歸錯誤預測所帶來的代價要大的多。

三、logistic迴歸權重更新

相對於之前的線性感知器而言,我們只需要修改啟用函式和代價函式。在實現logistic迴歸之前,需要先計算出對數似然函式對於w的偏導,得到每次權重更新的Δω。


所以Δω應該為


如果使用梯度下降演算法,則ω=ω-Δω,如果使用梯度上升演算法ω=ω+Δω。