4.機器學習之邏輯回歸算法


理論上講線性回歸模型既可以用於回歸,也可以用於分類。解決回歸問題,可以用於連續目標值的預測。但是針對分類問題,該方法則有點不適應,因為線性回歸的輸出值是不確定范圍的,無法很好的一一對應到我們的若干分類中。即便是一個二分類,線性回歸+閾值的方式,已經很難完成一個魯棒性很好的分類器了。為了更好的實現分類,邏輯回歸誕生了。邏輯回歸(Logistic Regression)主要解決二分類問題,用來表示某件事情發生的可能性。邏輯回歸是假設數據服從Bernoulli分布的,因此LR也屬於參數模型,他的目的也是尋找到最優參數。logistic回歸是一種廣義線性回歸(generalized linear model)。

【補充】在統計學中,參數模型通常假設總體(隨機變量)服從某一個分布,該分布由一些參數確定(比如正太分布由均值和方差確定),在此基礎上構建的模型稱為參數模型;非參數模型對於總體的分布不做任何假設,只是知道總體是一個隨機變量,其分布是存在的(分布中也可能存在參數),但是無法知道其分布的形式,更不知道分布的相關參數,只有在給定一些樣本的條件下,能夠依據非參數統計的方法進行推斷。

首先回顧一下簡單線性回歸(只考慮一個輸入變量,一個輸出變量的線性回歸)。[公式] 表示輸入變量(自變量),第一部分例子中的X。[公式] 表示輸出變量(因變量),第一部分例子中的Y。一對 [公式] 表示一組訓練樣本。m個訓練樣本 [公式] 稱為訓練集。上面表示法中的i代表第i個樣本。大寫的X代表所有輸入值組成的空間。大寫的Y代表所有輸出值組成的空間。回歸屬於有監督的學習。監督學習的定義是, 給定一個訓練集, 我們的目標是“學習”得到一個函數 [公式] , 使h(x)是真實值y的一個“好的”預測值。這里h叫做模型,也叫做假設(hypothesis)。

如果我們要預測的輸出值是連續的,那么該問題就稱作回歸問題。對於簡單線性回歸來說,我們的模型h可以表示如下:[公式]。其中的 [公式] 和 [公式] 代表模型的參數。線性回歸的目標是:求得最合適的[公式] 和 [公式],使得模型效果最好。

Regression問題的常規步驟為:

  1. 尋找h函數(即hypothesis);
  2. 構造J函數(損失函數);
  3. 想辦法使得J函數最小並求得回歸參數(θ)

從線性回歸到邏輯回歸:

我們知道,線性回歸的模型是求出輸出特征向量Y和輸入樣本矩陣X之間的線性關系系數θ,滿足Y=Xθ。此時我們的Y是連續的,所以是回歸模型。如果我們想要Y是離散的話,怎么辦呢?一個可以想到的辦法是,我們對於這個Y再做一次函數轉換,變為g(Y)。如果我們令g(Y)的值在某個實數區間的時候是類別A,在另一個實數區間的時候是類別B,以此類推,就得到了一個分類模型。如果結果的類別只有兩種,那么就是一個二元分類模型了。邏輯回歸的出發點就是從這來的。下面我們開始引入二元邏輯回歸。

邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。邏輯回歸假設因變量 y 服從伯努利分布,而線性回歸假設因變量 y 服從高斯分布。 因此與線性回歸有很多相同之處,去除Sigmoid映射函數的話,邏輯回歸算法就是一個線性回歸。可以說,邏輯回歸是以線性回歸為理論支持的,但是邏輯回歸通過Sigmoid函數引入了非線性因素,因此可以輕松處理0/1分類問題。

首先介紹一下Sigmoid函數,也稱為邏輯函數(Logistic function):

[公式]

其函數曲線如下:

從上圖可以看到sigmoid函數是一個s形的曲線,它的取值在[0, 1]之間,在遠離0的地方函數的值會很快接近0或者1。它的這個特性對於解決二分類問題十分重要。

我們知道線性回歸的模型:

線性回歸中廣義線性回歸我們提到對線性回歸的結果做一個在函數g上的轉換,可以變化為邏輯回歸。這個函數g在邏輯回歸中我們一般就取為sigmoid函數,所以邏輯回歸的假設函數形式如下:

[公式]

得到二元邏輯回歸模型如下:

 其中 [公式] 是樣本的輸入, [公式] 為我們要求取的參數。hθ(x)為模型輸出,可以理解為某一分類的概率大小。而θ為分類模型要求出的模型參數。對於模型輸出hθ(x),我們讓它和我們的二元樣本輸出y(假設為0和1)有這樣的對應關系,如果hθ(x)>0.5 ,即xθ>0, 則y為1。如果hθ(x)<0.5,即xθ<0, 則y為0。y=0.5是臨界情況,此時xθ=0為, 從邏輯回歸模型本身無法確定分類。hθ(x)的值越小,而分類為0的的概率越高,反之,值越大的話分類為1的的概率越高。如果靠近臨界點,則分類准確率會下降。此處我們也可以將模型寫成矩陣模式:

邏輯回歸的假設

正如線性回歸模型一樣,邏輯回歸也有假設條件,主要是兩個:

(1)假設數據服從伯努利分布

(2)假設模型的輸出值是樣本為正例的概率

基於這兩個假設,我們可以分別得出類別為1和0的后驗概率估計(即二元分類回歸的模型函數的值的特殊含義):

 

理解了二元分類回歸的模型,接着我們就要看模型的損失函數了,我們的目標是極小化損失函數來得到對應的模型系數θ。

 

二元邏輯回歸的損失函數

回顧下線性回歸的損失函數,由於線性回歸是連續的,所以可以使用模型誤差的的平方和來定義損失函數。但是邏輯回歸不是連續的,自然線性回歸損失函數定義的經驗就用不上了。不過我們可以用最大似然法來推導出我們的損失函數

按照上面二元邏輯回歸的定義,假設我們的樣本輸出是0或者1兩類。那么我們有:

把這兩個式子寫成一個式子,就是:

前面說到邏輯回歸其實是概率類模型,因此,我們通過極大似然估計(MLE)推導邏輯回歸損失函數。得到了y的概率分布函數表達式,我們就可以用似然函數最大化來求解我們需要的模型系數θ,即線性模型自變量的權重系數。最大似然函數L(θ)

一個連乘的函數是不好計算的,可以通過兩邊同事取log的形式讓其變成連加,所以為了方便求解,這里我們用對數似然函數最大化:

如此就推導出了參數的最大似然估計。最大似然估計就是求使取最大值時的θ,其實這里可以使用梯度上升法求解,求得的θ就是要求的最佳參數。但是在函數最優化的時候習慣讓一個函數越小越好,所以我們在前邊加一個負號。因為乘了一個負的系數-1,所以取最小值時的θ為要求的最佳參數。從而符合我們理解的損失函數是最小化,可以用梯度下降法求最小值,因此我們需要在上式前加一個負號便可得到最終的損失函數

 損失函數也可用矩陣法表達更加簡潔:

其中E為全1向量。

邏輯回歸的損失函數“對數似然函數”,在模型GBDT分類情況下也會用到,又叫作“交叉熵”。在邏輯回歸中,最常用的是代價函數是交叉熵(Cross Entropy),交叉熵是一個常見的代價函數,在神經網絡中也會用到。在1948年,克勞德·艾爾伍德·香農將熱力學的熵,引入到信息論,因此它又被稱為香農熵(Shannon Entropy),它是香農信息量(Shannon Information Content, SIC)的期望。香農信息量用來度量不確定性的大小:一個事件的香農信息量等於0,表示該事件的發生不會給我們提供任何新的信息,例如確定性的事件,發生的概率是1,發生了也不會引起任何驚訝;當不可能事件發生時,香農信息量為無窮大,這表示給我們提供了無窮多的新信息,並且使我們無限的驚訝。更多解釋可以參考博客:https://blog.csdn.net/rtygbwwwerr/article/details/50778098

 

二元邏輯回歸的損失函數的優化方法

 對於線性回歸模型而言,可以使用最小二乘法,但對於邏輯回歸而言使用傳統最小二乘法求解是不合適的。對於二元邏輯回歸的損失函數極小化,有比較多的方法,最常見的有梯度下降法,坐標軸下降法,等牛頓法等。之前提到過梯度下降法有代數法求解和矩陣法求解,只不過代數法推導比較的繁瑣。具體使用梯度下降法求解邏輯回歸損失函數方法可參考https://www.cnblogs.com/pinard/p/6029432.htmlhttps://zhuanlan.zhihu.com/p/51279024 他們的推導過程。

實踐中,我們一般不用操心優化方法,大部分機器學習庫都內置了各種邏輯回歸的優化方法,不過了解這些優化方法還是有必要的。

 

二元邏輯回歸的正則化

邏輯回歸也會面臨過擬合問題,所以我們也要考慮正則化。常見的有L1正則化和L2正則化。

問題的主因:過擬合問題往往源自過多的特征。

解決方法:

1)減少特征數量(減少特征會失去一些信息,即使特征選的很好)

  • 可用人工選擇要保留的特征;
  • 模型選擇算法;

2)正則化(特征較多時比較有效)

  • L2正則化保留所有特征,但減少θ的大小
  • L1正則化

邏輯回歸的L1正則化的損失函數表達式如下,相比普通的邏輯回歸損失函數,增加了L1的范數做作為懲罰,超參數α作為懲罰系數,調節懲罰項的大小:

其中|θ|1為θ的L1范數,邏輯回歸的L1正則化損失函數的優化方法常用的有坐標軸下降法和最小角回歸法。

二元邏輯回歸的L2正則化損失函數表達式如下:

其中|θ|2為θ的L2范數,邏輯回歸的L2正則化損失函數的優化方法和普通的邏輯回歸類似。

 

二元邏輯回歸的推廣:多元邏輯回歸

前面講的邏輯回歸的模型和損失函數都局限於二元邏輯回歸,實際上二元邏輯回歸的模型和損失函數很容易推廣到多元邏輯回歸。比如總是認為某種類型為正值,其余為0值,這種方法為最常用的one-vs-rest,簡稱OvR。

另一種多元邏輯回歸的方法是Many-vs-Many(MvM),它會選擇一部分類別的樣本和另一部分類別的樣本來做邏輯回歸二分類。最常用的是One-Vs-One(OvO)。OvO是MvM的特例。每次我們選擇兩類樣本來做二元邏輯回歸。

多元邏輯回歸算法如softmax回歸。

 

邏輯回歸的優缺點

優點:

1. 直接對分類可能性進行建模,無需實現假設數據分布,這樣就避免了假設分布不准確所帶來的問題

2. 形式簡單,便利的觀測樣本概率分數,模型的可解釋性非常好,特征的權重可以看到不同的特征對最后結果的影響

3. 訓練速度較快。分類速度很快

4. 內存占用少

缺點:

1. 一般准確率不是很高,因為形勢非常的簡單,很難去擬合數據的真實分布

2. 當特征空間很大時,邏輯回歸的性能不是很好

3. 很難處理數據不平衡的問題

 

邏輯回歸和線性回歸的區別:

1. 一個是解決回歸問題,一個用於解決分類問題

2. 線性回歸的樣本的輸出,都是連續值,y∈(+∞,−∞)而,邏輯回歸中y∈{0,1},只能取0和1

3. 擬合函數本質上的差別

    線性回歸決策函數:f(x)=θTX=θ1x1+θ2x2+⋯+θnxn 

   

   得邏輯回歸的決策函數:f(x)=p(y=1∣x;θ)=g(θTX)

  

 4. 線性回歸的擬合函數,的確是對f(x)的輸出變量y的擬合,而邏輯回歸的擬合函數是對為1類的樣本的概率的擬合;在線性回歸中θTX為預測值的擬合函數;而在邏輯回歸中θTX=0為決策邊界;即線性回歸中得到的直線是要擬合輸入樣本的分布的,而邏輯回歸里得到的線是決策邊界,是要盡可能的將樣本非開的,目的不同。

 

一句話概括邏輯回歸:邏輯回歸假設數據服從伯努利分布,在線性回歸的基礎上,套了一個二分類的Sigmoid函數,使用極大似然法來推導出損失函數,用梯度下降法優化損失函數的一個判別式的分類算法。分類的本質:在空間中找到一個決策邊界來完成分類的決策

 

 

 參考文章:

https://www.cnblogs.com/pinard/p/6029432.html

https://www.cnblogs.com/huangyc/p/9813891.html

https://zhuanlan.zhihu.com/p/28408516

https://blog.csdn.net/pakko/article/details/37878837

https://zhuanlan.zhihu.com/p/51279024

 


免責聲明!

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



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