機器學習算法系列(一):logistic迴歸

一、 Logistic分佈

定義:X是連續隨機變量,X服從logistic分佈,則X具有下列的分佈函數和密度函數:

機器學習算法系列(一):logistic迴歸

其中,μ為位置參數,γ為形狀參數

機器學習算法系列(一):logistic迴歸

曲線在中心附近增長速度較快,並且γ值越小,曲線在中心附近的增長速度越快。

特別的,當μ=0,γ=1的時候就是sigmoid函數。

二、 二項Logistic迴歸原理

二項Logistic迴歸模型時一種分類模型,由條件概率分佈P(Y|X)表示,隨機變量Y取0或1。

定義二項logistic迴歸模型的條件分佈如下:

機器學習算法系列(一):logistic迴歸

其中x∈Rn是輸入,Y∈{0,1}是輸出,W∈Rn和b∈R是參數,w稱為權重,b稱為偏置。

有時為了方便會將權重向量和輸入向量進行擴充:

w = (w1, w2, …, wn, b)T, x = (x1, x2, …, xn, 1)T

所以,logistic迴歸模型變為:

機器學習算法系列(一):logistic迴歸

得到概率之後,我們可以通過設定一個閾值將樣本分成兩類。如:閾值為0.5的時候,當大於0.5則為一類,小於0.5為另一類。

三、 參數估計

有了以上的模型,我們就需要對模型中的參數w求出來。我們可以使用極大似然估計法估計模型的參數。

設:

機器學習算法系列(一):logistic迴歸

似然函數為:

機器學習算法系列(一):logistic迴歸

對數似然函數:

機器學習算法系列(一):logistic迴歸

對L(w)求極大值,得到w的估計值。通常採用梯度下降法或擬牛頓法求解參數w。

四、 Logistic迴歸的正則化

正則化是為了解決過擬合問題。分為L1和L2正則化。目標函數中加入正則化,即加入模型複雜性的評估。正則化符合奧卡姆剃刀原理,即:在所有可能的模型中,能夠很好的解釋已知數據並且十分簡單的模型才是最好的模型。

加入正則化後,模型的目標函數變為:

機器學習算法系列(一):logistic迴歸

P表示範數,p=1為L1正則化,p=2為L2正則化

L1正則化:向量中各元素絕對值的和。關鍵在於能夠對特徵進行自動選擇,稀疏參數可以減少非必要的特徵引入噪聲。

L2正則化:向量中個元素的平方和,L2會使得各元素儘可能小,但都不為零。

機器學習算法系列(一):logistic迴歸

左邊為L1正則化,右邊為L2正則化。假設權重參數w只有二維w1和w2。L1為各元素絕對值和,即|w1|+|w2| = C,則得到的形狀為稜形,L2為(w1)^2+(w2)^2 = C,則形狀為圓。很容易可以發現L1更容易在頂點處相切,L2則不容易在頂點處相切。頂點處則其中一個參數為0,這就是為什麼L1會使得參數稀疏的原因。

五、 Logistic迴歸和線性迴歸區別

1. Logistic迴歸在線性迴歸的實數輸出範圍加上sigmoid函數,將輸出值收斂在0~1之間。其目標函數也因此從差平方和函數變為對數損失函數。

2. 邏輯迴歸和線性迴歸都是廣義的線性迴歸,線性迴歸是使用最小二乘法優化目標函數,而邏輯迴歸是使用梯度下降或者擬牛頓法。

3. 線性迴歸在整個實數域範圍內進行預測,敏感度一致,而分類範圍需要在[0,1]。邏輯迴歸是一種減少預測範圍,將預測值限定為[0,1]間的一種迴歸模型。因而對於二分類問題,邏輯迴歸的魯棒性更好。

4. 邏輯迴歸是以線性迴歸為理論支持的,但線性迴歸模型無法做到sigmoid的非線性形式。Sigmoid可以輕鬆處理0/1分類問題。

六、 為什麼Logistic迴歸的輸入特徵一般都是離散化而不是連續的

1. 離散特徵容易增加和減少,使得模型容易迭代。

2. 離散特徵的內積運算速度快,計算結果方便存儲。

3. 對異常值不敏感,比如一個特徵是年齡>30為1,否則為0,如果特徵沒有離散化。一個異常數據300歲會給模型帶來很大的干擾。

4. 邏輯迴歸是廣義線性模型,表達能力受限。單變量離散化為N個後,每個變量都有單獨的權重,相當於為模型引入了非線性,能夠提升模型的表達能力,加大擬合。

5. 特徵離散化後可以進行特徵交叉,由M+N變量變為M*N個變量,進一步引入非線性,提升表達能力。

6. 特徵離散化後,模型會更加穩定。比如對用戶年齡離散化,將20~30作為一個區間,這樣不會因為一個用戶年齡大了一歲就變成完全不同的人了,當然處於區間相鄰處的樣本就剛好相反,所以怎麼劃分區間是們學問。

7. 特徵離散化後,起到了簡化了邏輯迴歸模型的作用,降低了模型過擬合的風險。

七、 Logistic迴歸和SVM的關係

1. LR和SVM都可以處理分類問題,且一般都處理線性二分類問題。

2. LR是參數模型,SVM是非參數模型。

3. LR的目標函數是對數似然函數,SVM的目標函數是hinge損失函數。這兩個函數都是增加對分類結果影響較大的數據點的權重,減少影響較小的數據點的權重。

4. SVM的處理方法是隻考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重。

5. 邏輯迴歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而SVM的理解和優化相對來說複雜一些,SVM轉化為對偶問題後,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算。

6. logic 能做的 svm能做,但可能在準確率上有問題,svm能做的logic有的做不了。


分享到:


相關文章: