邏輯回歸和SVM的區別是什麼?各適用於解決什麼問題?
邏輯回歸和支持向量機之間的區別也是面試經常會問的一道題,特地找了一些相關資料看了下。
我們先來看一下SVM 和正則化的邏輯回歸它們的損失函數:
其中, .
可以將兩者統一起來,
也就是說,它們的區別就在於邏輯回歸採用的是 log loss(對數損失函數),svm採用的是hinge loss 。
- SVM 損失函數 :
- LR 損失函數:
其實,這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重。SVM的處理方法是只考慮 support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重,兩者的根本目的都是一樣的。
svm考慮局部(支持向量),而logistic回歸考慮全局,就像大學裡的輔導員和教師間的區別[2]。
輔導員關心的是掛科邊緣的人,常常找他們談話,告誡他們一定得好好學習,不要浪費大好青春,掛科了會拿不到畢業證、學位證等等,相反,對於那些相對優秀或者良好的學生,他們卻很少去問,因為輔導員相信他們一定會按部就班的做好分內的事;而大學裡的教師卻不是這樣的,他們關心的是班裡的整體情況,大家是不是基本都理解了,平均分怎麼樣,至於某個人的分數是59還是61,他們倒不是很在意。
歡迎訪問我的博客: Logistic Regression and SVM
----------
[1]: Machine learning: lecture 7
[2]: SVM(一) 基本概念、模型建立
1,優化目標不同。LR的目標函數是logloss,SVM是最大化分類面間距。2,對非線性問題的處理方式不同。LR主要靠特徵構造,必須組合交叉特徵,特徵離散化。SVM也可以這樣,還可以通過kernel。3,處理的數據規模不同。LR一般用來處理大規模的學習問題。如十億級別的樣本,億級別的特徵。
如果從分界面的形狀出發,來看待這兩種學習模型,那麼結果會是下面這樣的。
邏輯回歸和軟間隔SVM(線性核)都是線性分類器,其分界面是超平面(w0 + w1*x1 +...+ wd*xd = 0),所以兩者適用於數據本質上是線性可分或近似線性可分的情形。軟間隔SVM(非線性核)是非線性分類器,其分界面是曲面,適用於數據非線性可分的情形。
註:作為SVM的原型——硬間隔SVM(線性核),剛開始只能解決數據線性可分的分類問題。因為引入了核函數,才使得分類器可以解決數據非線性可分的問題。同樣的,作為最最簡單的神經網路——邏輯回歸也只能解決線性分類問題。因為進行了函數的複合,同樣使得分類器可以解決數據非線性可分的問題。
1.損失函數不一樣,邏輯回歸的損失函數是log loss,svm的損失函數是hinge loss
2.損失函數的優化方法不一樣,邏輯回歸用剃度下降法優化,svm用smo方法進行優化
3.邏輯回歸側重於所有點,svm側重於超平面邊緣的點4.svm的基本思想是在樣本點中找到一個最好的超平面對計算機來說,歸根結底還是優化目標, 也就是損失函數的不同造成兩種模型的差異。 LR是logloss, SVM是hinge loss. 我一般將SVM的損失函數理解為最關鍵的點造成的損失。
其他的區別並沒有特別重要。
第一的答案已經解釋很清楚了。SVM的理論性強,最nb的地方是核函數的引入,可以來逼近非線性目標函數。不過如果非線性的話,工業界GBDT用得更廣些。
推薦閱讀:
※隱馬爾可夫模型--更加接近真相。
※《NLP》第二章The Language Modeling Problem
※Attention is All You Need | 每周一起讀
TAG:自然語言處理 |