之前整理過一篇關於邏輯回歸的帖子,但是只是簡單介紹了一下了LR的基本思想,面試的時候基本用不上,那么這篇帖子就深入理解一下LR的一些知識,希望能夠對面試有一定的幫助。
1、邏輯斯諦分布
介紹邏輯斯諦回歸模型之前,首先看一個並不常見的概率分布,即邏輯斯諦分布。設X是連續隨機變量,X服從邏輯斯諦分布是指X具有如下的累積分布函數和概率密度函數:

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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