之前整理過一篇關(guān)于邏輯回歸的帖子,但是只是簡單介紹了一下了LR的基本思想,面試的時候基本用不上,那么這篇帖子就深入理解一下LR的一些知識,希望能夠?qū)γ嬖囉幸欢ǖ膸椭?/p>
1、邏輯斯諦分布
介紹邏輯斯諦回歸模型之前,首先看一個并不常見的概率分布,即邏輯斯諦分布。設X是連續(xù)隨機變量,X服從邏輯斯諦分布是指X具有如下的累積分布函數(shù)和概率密度函數(shù):

式中,μ為位置參數(shù),γ>0為形狀參數(shù)。邏輯斯諦的分布的密度函數(shù)f(x)和分布函數(shù)F(x)的圖形如下圖所示。其中分布函數(shù)屬于邏輯斯諦函數(shù),其圖形為一條S形曲線。該曲線以點(μ,1/2)
為中心對稱,即滿足:

曲線在中心附近增長較快,在兩端增長較慢,形狀參數(shù)γ的值越小,曲線在中心附近增長得越快。

2、邏輯斯諦回歸模型:
線性回歸的應用場合大多是回歸分析,一般不用在分類問題上,原因可以概括為以下兩個:
1)回歸模型是連續(xù)型模型,即預測出的值都是連續(xù)值(實數(shù)值),非離散值;
2)預測結(jié)果受樣本噪聲的影響比較大。
2.1 LR模型表達式
LR模型的表達式為參數(shù)化的邏輯斯諦函數(shù),即:


2.2 理解LR模型
2.2.1 對數(shù)幾率
一個事件發(fā)生的幾率(odds)是指該事件發(fā)生的概率與該事件不發(fā)生的概率的比值。如果事件發(fā)生的概率是p,那么該事件的幾率為p/(1-p) ,該事件的對數(shù)幾率(log odds)或logit函數(shù)是:

對LR而言,根據(jù)模型表達式可以得到:

即在LR模型中,輸出y=1的對數(shù)幾率是輸入x的線性函數(shù),或者說y=1的對數(shù)幾率是由輸入x的線性函數(shù)表示的模型,即LR模型。
2.2.2 函數(shù)映射
除了從對數(shù)幾率的角度理解LR之外,從函數(shù)映射也可以理解LR模型。
考慮對輸入實例x進行分類的線性表達式θT,其值域為實數(shù)域,通過LR模型的表達式可以將線性函數(shù)θTx的結(jié)果映射到(0,1)區(qū)間,取值表示為結(jié)果為1的概率(在二分類場景中).
線性函數(shù)的值越接近于正無窮大,概率值就越近1;反之,其值越接近于負無窮,概率值就越接近于0,這樣的模型就是LR模型。
LR本質(zhì)上還是線性回歸,只是特征到結(jié)果的映射過程中加了一層函數(shù)映射,即sigmoid函數(shù),即先把特征線性求和,然后使用sigmoid函數(shù)將線性和約束至(0,1)之間,結(jié)果值用語二分或回歸預測。
2.2.3 概率解釋
LR模型多用于解決二分類問題,如廣告是否被點擊(是/否),商品是否被購買(是/否)等互聯(lián)網(wǎng)領域中常見的應用場景。但在實際場景中,我們又不把它處理成絕對的分類,而是用其預測值作為事件發(fā)生的概率。
這里從事件,變量以及結(jié)果的角度給予解釋。
我們所能拿到的訓練數(shù)據(jù)統(tǒng)稱為觀測樣本。問題,樣本是如何生成的?
一個樣本可以理解為發(fā)生的一次事件,樣本生成的過程即事件發(fā)生的過程,對于0/1分類問題來講,產(chǎn)生的結(jié)果有兩種可能,符合伯努利試驗的概率假設。因此,我們可以說樣本的生成過程即為伯努利試驗過程,產(chǎn)生的結(jié)果(0/1)服從伯努利分布,那么對于第i個樣本,概率公式表示如下:

將上面兩個公式合并在一起,可以得到第i個樣本正確預測的概率:

上式是對一個樣本進行建模的數(shù)據(jù)表達。為什么可以這么做呢,因為y=1時后面一項為1,y=0時前面一項為1。那么對于所有的樣本,假設每條樣本生成過程獨立,在整個樣本空間中(N個樣本)的概率分布(即似然函數(shù))為:

接下來我們就可以通過極大似然估計方法求概率參數(shù)。
3、模型參數(shù)估計
3.1 Sigmoid函數(shù)
上圖所示即為sigmoid函數(shù),它的輸入范圍為?∞→+∞,而值域剛好為(0,1),正好滿足概率分布為(0,1)的要求。用概率去描述分類器,自然要比閾值要來的方便。而且它是一個單調(diào)上升的函數(shù),具有良好的連續(xù)性,不存在不連續(xù)點。

此外非常重要的,sigmoid函數(shù)求導后為:

3.2 參數(shù)估計推導
上一節(jié)的公式不僅可以理解為在已觀測的樣本空間中的概率分布表達式。如果從統(tǒng)計學的角度可以理解為參數(shù)θ
θ
似然性的函數(shù)表達式(即似然函數(shù)表達式)。就是利用已知的樣本分布,找到最有可能(即最大概率)導致這種分布的參數(shù)值;或者說什么樣的參數(shù)才能使我們觀測到目前這組數(shù)據(jù)的概率最大。參數(shù)在整個樣本空間的似然函數(shù)可表示為:

為了方便參數(shù)求解,對這個公式取對數(shù),可得對數(shù)似然函數(shù):

然后,我們使用隨機梯度下降的方法,對參數(shù)進行更新:

最后,通過掃描樣本,迭代下述公式可救的參數(shù):

式中,a表示學習率。
以上的推導,就是LR模型的核心部分,在機器學習相關(guān)的面試中,LR模型公式推導可能是考察頻次最高的一個點,要將其熟練掌握。
4、LR的優(yōu)缺點
優(yōu)點
一、預測結(jié)果是界于0和1之間的概率;
二、可以適用于連續(xù)性和類別性自變量;
三、容易使用和解釋;
缺點
一、對模型中自變量多重共線性較為敏感,例如兩個高度相關(guān)自變量同時放入模型,可能導致較弱的一個自變量回歸符號不符合預期,符號被扭轉(zhuǎn)。?需要利用因子分析或者變量聚類分析等手段來選擇代表性的自變量,以減少候選變量之間的相關(guān)性;
二、預測結(jié)果呈“S”型,因此從log(odds)向概率轉(zhuǎn)化的過程是非線性的,在兩端隨著?log(odds)值的變化,概率變化很小,邊際值太小,slope太小,而中間概率的變化很大,很敏感。 導致很多區(qū)間的變量變化對目標概率的影響沒有區(qū)分度,無法確定閥值。
5、LR和SVM
1、LR采用log損失,SVM采用合頁損失。
2、LR對異常值敏感,SVM對異常值不敏感。
3、在訓練集較小時,SVM較適用,而LR需要較多的樣本。
4、LR模型找到的那個超平面,是盡量讓所有點都遠離他,而SVM尋找的那個超平面,是只讓最靠近中間分割線的那些點盡量遠離,即只用到那些支持向量的樣本。
5、對非線性問題的處理方式不同,LR主要靠特征構(gòu)造,必須組合交叉特征,特征離散化。SVM也可以這樣,還可以通過kernel。
6、svm 更多的屬于非參數(shù)模型,而logistic regression 是參數(shù)模型,本質(zhì)不同。其區(qū)別就可以參考參數(shù)模型和非參模型的區(qū)別
那怎么根據(jù)特征數(shù)量和樣本量來選擇SVM和LR模型呢?Andrew NG的課程中給出了以下建議:
如果Feature的數(shù)量很大,跟樣本數(shù)量差不多,這時候選用LR或者是Linear Kernel的SVM
如果Feature的數(shù)量比較小,樣本數(shù)量一般,不算大也不算小,選用SVM+Gaussian Kernel
如果Feature的數(shù)量比較小,而樣本數(shù)量很多,需要手工添加一些feature變成第一種情況。(LR和不帶核函數(shù)的SVM比較類似。)
參考文獻:https://plushunter.github.io/2017/01/12/機器學習算法系列(3):邏輯斯諦回歸/