邏輯回歸和SVM

相同點

cnblogs.com/bentuwuying

  1. 都是分類演算法
  2. 原始問題都線性分類。
  3. 都是監督學習
  4. 都是判別模型
  5. 都是應用廣泛的。

不同點

  1. 損失函數不同、假設不同、思路不同

邏輯回歸的思路是基於概率的,有些教材比如李航的《統計學習方法》裡面根本沒有提到損失函數。SVM則是基於幾何間隔最大化,李航的《統計學習方法》也沒有提出明確的損失函數的概念,但觀察原始問題引入拉格朗日乘數後的表達式  frac{1}{2}{||w||}^{2}-alpha(sum_{1}^{N}{|wx_i+b|-1}),可以將其中與拉格朗日乘數相乘的部分看做損失函數,而前面的  frac{1}{2}{||w||}^{2} 則可以看做正則項(這也算是一個不同點)。 具體而言,當y∈{1,-1}時,邏輯回歸的損失函數由上一篇可知是 log(1+exp(-y<w·x>)) ,而SVM的損失函數則是Hinge損失函數:

2. 由於上述損失函數的不同,邏輯回歸考慮所有點的損失,但離分類平面越遠的點貢獻的損失越小,影響越小;SVM只考慮誤分類點的損失,對損失貢獻最大的是少數幾個支持向量。

3. 由於第2點,

Linear SVM不直接依賴數據分布,分類平面不受一類點影響;LR則受所有數據點的影響,如果數據不同類別strongly unbalance一般需要先對數據做balancing。

zhihu.com/question/2676

4.

Linear SVM依賴數據表達的距離測度,所以需要對數據先做normalization;LR不受其影響

zhihu.com/question/2676

117.143.109.163/cache/w

5. 在軟間隔SVM中,有一個超參數需要調參,誤分類點的懲罰參數(李航的《統計學習方法》P109里的C值),而邏輯回歸沒有這種超參數。

6. 在預測未知點時,邏輯回歸能給出一個概率值,而SVM只能給出0/1。這在實際使用中可能會是一個考慮的點。

7. SVM在用核函數時,SMO演算法可以每次只計算兩個點的核函數,而邏輯回歸使用核函數則要仍然要計算所有點之間的核函數,在數據量大時,計算量差距比較明顯。

這個ppt里給了一個有趣的從邏輯回歸推到到SVM表達式的方式

SVM與LR的區別_百度文庫

推薦閱讀:

SPSS教程:手把手教你設置啞變數以及解讀結果
SPSS學習筆記:因變數二分類資料的logistic回歸分析
用Python學習數據分析(5)機器學習入門必學線性回歸與邏輯回歸
面壁者系列:Logistic回歸

TAG:機器學習 | SVM | Logistic回歸 |