LR和SVM可能是面試中問(wèn)到的非樹(shù)模型中很常見(jiàn)的一個(gè)問(wèn)題了,主要的是推公式以及說(shuō)明求解過(guò)程如SVM。筆者在面美團(tuán)的時(shí)候就要求推了LR和SVM,過(guò)程不難,平時(shí)每天推一遍,你就會(huì)發(fā)現(xiàn)面試的時(shí)候最讓人覺(jué)得愉快的就說(shuō)推公式了,然后推完之后就是問(wèn)一下與之有關(guān)的亂七八糟的問(wèn)題了。
聯(lián)系:
1、LR和SVM都可以處理分類問(wèn)題,且一般都用于處理線性二分類問(wèn)題(在改進(jìn)的情況下可以處理多分類問(wèn)題)
2、兩個(gè)方法都可以增加不同的正則化項(xiàng),如l1、l2等等。所以在很多實(shí)驗(yàn)中,兩種算法的結(jié)果是很接近的。
3、LR和SVM都可以用來(lái)做非線性分類,只要加核函數(shù)就好。
4、LR和SVM都是線性模型,當(dāng)然這里我們不要考慮核函數(shù)。
5、都屬于判別模型。
區(qū)別:
1、LR是參數(shù)模型,SVM是非參數(shù)模型。
2、從目標(biāo)函數(shù)來(lái)看,區(qū)別在于邏輯回歸采用的是logistical loss,SVM采用的是hinge loss,這兩個(gè)損失函數(shù)的目的都是增加對(duì)分類影響較大的數(shù)據(jù)點(diǎn)的權(quán)重,減少與分類關(guān)系較小的數(shù)據(jù)點(diǎn)的權(quán)重。
3、邏輯回歸相對(duì)來(lái)說(shuō)模型更簡(jiǎn)單,好理解,特別是大規(guī)模線性分類時(shí)比較方便。而SVM的理解和優(yōu)化相對(duì)來(lái)說(shuō)復(fù)雜一些,SVM轉(zhuǎn)化為對(duì)偶問(wèn)題后,分類只需要計(jì)算與少數(shù)幾個(gè)支持向量的距離,這個(gè)在進(jìn)行復(fù)雜核函數(shù)計(jì)算時(shí)優(yōu)勢(shì)很明顯,能夠大大簡(jiǎn)化模型和計(jì)算。
4、SVM不直接依賴數(shù)據(jù)分布,而LR則依賴,因?yàn)镾VM只與支持向量那幾個(gè)點(diǎn)有關(guān)系,而LR和所有點(diǎn)都有關(guān)系。
5、SVM依賴penalty系數(shù),實(shí)驗(yàn)中需要做CV。
6、SVM本身是結(jié)構(gòu)風(fēng)險(xiǎn)最小化模型,而LR是經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化模型。
另外怎么選模型:
在Andrew NG的課里講到過(guò):
1. 如果Feature的數(shù)量很大,跟樣本數(shù)量差不多,這時(shí)候選用LR或者是Linear Kernel的SVM
2. 如果Feature的數(shù)量比較小,樣本數(shù)量一般,不算大也不算小,選用SVM+Gaussian Kernel
3. 如果Feature的數(shù)量比較小,而樣本數(shù)量很多,需要手工添加一些feature變成第一種情況
還有的解釋的比較詳細(xì)的,可以看引用,差不多能回答出來(lái)幾點(diǎn)就好了,具體的因?yàn)槟P筒灰粯?,能說(shuō)出來(lái)一大推其他的不同點(diǎn)。