LR與SVM的區別與聯繫
幾月前一次午餐時間,聽到同事之間的閑聊,LR和SVM只是損失函數不一樣而已,這讓我百思不得其解,這兩個貨怎麼會聯繫在一起???上周剛剛手推了SVM,趁這個機會也推一推LR,深刻體會以下「為什麼LR和SVM只是損失函數不一樣而已「。在我的潛意識裡,LR是最簡單的模型了,無非是普通的線性回歸模型加上一個損失函數。其實不然,LR的model、evaluate、optimization是什麼我真的都知道嗎?不知道。記得有一次校招去騰訊面試,面試官上來直接讓我推一下LR,當場就懵逼了,於是我的騰訊夢碎了T T。很多同學想必也是這樣,只會調用API跑跑模型,對於模型知其然而不知其所以然,就以為自己是機器學習大神了,Naive。
Logistic Regression(對數幾率回歸)
LR可表示為
可以通過極大似然法估計 和 ,則似然函數可以寫成
在二分類的情況下,用示性函數來表示概率
從原始概率來看
因此
因此最大化 等價於最小化 ,用牛頓迭代、梯度下降都可以求最優解。
一般線性模型
為什麼對數幾率函數長這樣 而不長成別的樣子,其實是有一套理論支撐的,這個理論便是一般線性模型。如果一個概率分布可以表示成
那麼這個概率分布可以稱作是指數分布。伯努利分布,高斯分布,泊松分布,貝塔分布,狄特里特分布都屬於指數分布。在對數回歸時採用的是伯努利分布,伯努利分布的概率可以表示成
令 可得 ,這就是LR一般形式的由來。
LR與SVM的區別與聯繫
現在回過頭來理解「LR和SVM本質不同在於loss function的不同「這句話,也就不難了,LR的損失函數是Cross entropy loss,svm的損失函數是Hinge loss,兩個模型都屬於線性分類器,而且性能相當。區別在於
- LR的解是受數據本身分布影響的,而SVM的解不受數據分布的影響;
- LR的輸出具有自然的概率意義,而SVM的輸出不具有概率意義;
- SVM依賴數據表達的距離測度,所以在建模前需要對數據標準化,LR則不需要;
- SVM受懲罰係數C的影響較大,實驗中需要做Validation,LR則不需要;
- LR適合於大樣本學習,SVM適合於小樣本學習。
換用其他的Loss函數的話,SVM就不再是SVM了。正是因為Hinge Loss的零區域對應的正是非支持向量的普通樣本,從而所有的普通樣本都不參與最終超平面的決定,這才是支持向量機最大的優勢所在,對訓練樣本數目的依賴大大減少,而且提高了訓練效率。
參考資料:
[小白式機器學習(一)] logistic regression(LR)對數幾率回歸 / 邏輯回歸 公式推導周志華-機器學習斯坦福大學公開課 :機器學習課程Linear SVM 和 LR 有什麼異同?推薦閱讀:
徐小賤民:FingercrossAI鏈接匯總推薦閱讀:
※我所理解的 SVM(支持向量機)- 1
※BAT機器學習面試1000題系列(236-240)
※【Matlab】安裝libsvm的問題與解決辦法
※多標籤(multi-label)數據的學習問題,常用的分類器或者分類策略有哪些?
※支持向量機中的函數距離和幾何距離怎麼理解?
TAG:机器学习 | Logistic回归 | SVM |