寫在前面:簡書上搞機器學(xué)習(xí)的人極少,大都在CSDN上吧杠园。我也在個人博客 http://fighting41love.github.io/#blog 上寫了一些文章顾瞪,苦于只能自我驅(qū)動抛蚁,沒有讀者,有點難于堅持下去瞧甩。
所以钉跷,自己還是沒能免俗肚逸,希望有更多人關(guān)注和支持爷辙。這是我在這里寫技術(shù)博客的初衷朦促。簡書機器學(xué)習(xí)受眾少犬钢,也是弊端思灰。但從自己內(nèi)心來說,不斷寫文章,就是加大自己的輸出歹颓,那就必須加大輸入,多讀書巍扛,多總結(jié)领跛!經(jīng)濟學(xué)領(lǐng)域里所謂的“加大杠桿”撤奸。所以,這件事要堅持下去胧瓜。
SMV和Logistic Regression已經(jīng)是工業(yè)界廣泛應(yīng)用的方法了矢棚。
在解決實際問題中府喳,什么時候用SVM?
什么時候用Logistic Regression呢?
Logistice Regression 和 SVM都能解決線性分類問題钝满,也都能解決非線性分類問題(都使用kernel trick即可兜粘,只是LR引入kernel沒有支持向量的話弯蚜,計算代價有點高)孔轴。在這里我們僅討論線性分類問題碎捺,即Logistic Regression 和 SVM with linear kernel路鹰。如果非線性分類牵寺,當然首選SVM恩脂。
先拋一下Andrew Ng老師在Coursera上《Machine Learning》from stanford的結(jié)論:
n: feature 數(shù)目 m: sample 數(shù)目
以上只是Andrw Ng大神直觀的總結(jié)帽氓,還有一些細節(jié)需要討論:
1. SVM不是概率輸出俩块,Logistic Regression是概率輸出黎休。
也就是說玉凯,當一個新樣本來了,SVM只會告訴你它的分類漫仆,而Logistic Regression會告訴你它屬于某類的概率捎拯!
什么意思呢盲厌?當你想要知道某個樣本屬于一個類的概率時署照,SVM就不適用了。此時建芙,應(yīng)該使用Logistic Regression。
那么問題來了禁荸,點到SVM分類面的距離,是否可以轉(zhuǎn)化為“概率輸出”呢赶熟,即離分類面越遠瑰妄,其屬于該類的概率越大钧大,反之越小呢翰撑?《PRML》里確實提過類似的做法啊央,也有一些其他的辦法讓SVM輸出概率,但作者說這些方法都不太實用瓜饥。
2. 異常點的魯棒性問題
當訓(xùn)練樣本中存在異常點時逝撬,由于Logistic Regression的lost function中有每一個點的貢獻乓土,所以某種程度上“削弱了”異常點的貢獻宪潮。而SVM只需要考慮支持向量趣苏,此時支持向量本來就不是很多的情況下,幾個異常點就很有可能極大影響SVM的表現(xiàn)食磕。
3. 目標函數(shù) lost function
Logistic Regression使用entropy loss尽棕,極大化似然函數(shù)彬伦。
而SVM使用hinge loss, 最大化間隔。兩個loss差別不是很大单绑,所以算是一個相同點了回官。
4. 實際問題:
實際問題中搂橙,如果數(shù)據(jù)量非常大歉提,特征維度很高,使用SVM搞不定時苔巨,還是用Logistic Regression吧,速度更快一些恋拷。
個人水平有限资厉,如有錯誤請指出蔬顾!謝謝!