邏輯回歸詳細推導:http://lib.csdn.net/article/machinelearning/35119
面試常見問題:https://www.cnblogs.com/ModifyRong/p/7739955.html
1、LR和SVM有什么相同點
(1)都是監督分類算法,判別模型;
(2)LR和SVM都可以處理分類問題,且一般都用於處理線性二分類問題(在改進的情況下可以處理多分類問題);
(3)兩個方法都可以增加不同的正則化項,如L1、L2等等。所以在很多實驗中,兩種算法的結果是很接近的。
2、LR和SVM有什么不同點
(1)本質上是其loss function不同;
區別在於邏輯回歸采用的是Logistical Loss,SVM采用的是hinge loss.這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關系較小的數據點的權重。
邏輯回歸損失函數:
SVM損失函數:
LR方法基於概率理論,假設樣本為0或者1的概率可以用sigmoid函數來表示,然后通過極大似然估計的方法估計出參數的值,或者從信息論的角度來看,其是讓模型產生的分布P(Y|X)P(Y|X)盡可能接近訓練數據的分布;支持向量機基於幾何間隔最大化原理,認為存在最大幾何間隔的分類面為最優分類面 。
(2)SVM只考慮分類面上的點,而LR考慮所有點(遠離的點對邊界線的確定也起作用)
SVM中,在支持向量之外添加減少任何點都對結果沒有影響,而LR則是每一個點都會影響決策。
Linear SVM不直接依賴於數據分布,分類平面不受一類點影響 ;LR則是受所有數據點的影響,所以受數據本身分布影響的,如果數據不同類別strongly unbalance,一般需要先對數據做balancing。
(3)在解決非線性問題時,支持向量機采用核函數的機制,而LR通常不采用核函數的方法。
SVM轉化為對偶問題后,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算量。 而LR則每個點都需要兩兩計算核函數,計算量太過龐大。
(4)SVM依賴於數據的測度,而LR則不受影響
因為SVM是基於距離的,而LR是基於概率的,所以LR是不受數據不同維度測度不同的影響,而SVM因為要最小化12||w||212||w||2所以其依賴於不同維度測度的不同,如果差別較大需要做normalization 。當然如果LR要加上正則化時,也是需要normalization一下的 。
使用梯度下降算法,一般都要 feature scaling,如果不歸一化,各維特征的跨度差距很大,目標函數就會是“扁”的,在進行梯度下降的時候,梯度的方向就會偏離最小值的方向,走很多彎路。
(5)SVM自帶結構風險最小化,LR則是經驗風險最小化
SVM的損失函數就自帶正則!!!(損失函數中的1/2||w||^2項),這就是為什么SVM是結構風險最小化算法的原因!!!而LR必須另外在損失函數上添加正則項!!!
以前一直不理解為什么SVM叫做結構風險最小化算法,所謂結構風險最小化,意思就是在訓練誤差和模型復雜度之間尋求平衡,防止過擬合,從而達到真實誤差的最小化。來達到結構風險最小化的目的,最常用的方法就是添加正則項,而SVM自帶正則項。
(6)LR和SVM在實際應用的區別
根據經驗來看,對於小規模數據集,SVM的效果要好於LR,但是大數據中,SVM的計算復雜度受到限制,而LR因為訓練簡單,可以在線訓練,所以經常會被大量采用【聽今日頭條的同學說,他們用LR用的就非常的多】
轉自:簡書作者