朴素貝葉斯與邏輯回歸的區別:
朴素貝葉斯 |
邏輯回歸 |
生成模型(Generative model) |
判別模型(Discriminative model) |
對特征x和目標y的聯合分布P(x,y)建模,使用極大后驗概率估計法估計出最有可能的P(y|x) |
直接對后驗概率P(y|x)建模,使用極大似然估計法使其最大化 |
不需要優化參數,先用極大似然估計法估計出先驗概率P(y)和條件概率P(x|y),然后計算出極大后驗概率P(y|x) |
需要優化參數,先用極大似然估計法得出損失函數,再用梯度下降法等優化參數 |
假設特征之間相互獨立,對於不相互獨立的特征,朴素貝葉斯的分類效果會差一些 |
不必假設特征之間是相互獨立的,對於不相互獨立的特征,邏輯回歸會在訓練過程中對參數自動調整 |
Andrew Ng和Michael Jordan在2001年發了一篇NIPS短文《
On Discriminative vs. Generative classifiers: A comparison of logistic regression and naive Bayes 》,他們把這兩個模型在各種數據集上面進行測試,最后得到在小數據上Naive bayes可以取得更好的效果,隨着數據的增多、特征維度的增大,Logistic regression的效果更好。這是因為Naive bayes是生成模型,假設訓練數據服從某種分布,在有prior的情況下模型能夠把數據fit的更好,但是隨着數據量的增多,prior對整個數據后驗概率分布的影響逐漸降低。而Logistic regression屬於判別模型,不去建模聯合概率,通過訓練數據直接預測輸出,因此在數據足夠多的情況下能夠得到更好一些的效果。