1. 程式人生 > >機器學習(九)—邏輯回歸與SVM區別

機器學習(九)—邏輯回歸與SVM區別

ongl 需要 自帶 www. 不理解 就是 clas 決策 技術

1、LR和SVM有什麽相同點

  (1)都是監督分類算法;

  (2)如果不考慮核函數,LR和SVM都是線性分類算法,也就是說他們的分類決策面都是線性的;

  (3)LR和SVM都是判別模型。

2、LR和SVM有什麽不同點

  (1)本質上是其loss function不同;

  邏輯回歸損失函數:

  技術分享圖片

  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叫做結構風險最小化算法,所謂結構風險最小化,意思就是在訓練誤差和模型復雜度之間尋求平衡,防止過擬合,從而達到真實誤差的最小化。未達到結構風險最小化的目的,最常用的方法就是添加正則項。

  (6)LR和SVM在實際應用的區別

  根據經驗來看,對於小規模數據集,SVM的效果要好於LR,但是大數據中,SVM的計算復雜度受到限制,而LR因為訓練簡單,可以在線訓練,所以經常會被大量采用【聽今日頭條的同學說,他們用LR用的就非常的多】

轉自:簡書作者

機器學習(九)—邏輯回歸與SVM區別