一 综述html
因为逻辑回归和朴素贝叶斯分类器都采用了极大似然法进行参数估计,因此它们会被常常用来对比。(另外一对常常作对比的是逻辑回归和SVM,由于它们都是经过创建一个超平面来实现分类的)本文主要介绍这两种分类器的相同点和不一样点。git
二.二者的不一样点github
1.二者比较明显的不一样之处在于,逻辑回归属于判别式模型,而朴素贝叶斯属于生成式模型。具体来讲,二者的目标虽然都是最大化后验几率,可是逻辑回归是直接对后验几率P(Y|X)进行建模,而朴素贝叶斯是对联合几率P(X,Y)进行建模,因此说二者的出发点是不一样的。网络
(西瓜书上关于贝叶斯分类器的那章有比较详细的解释)函数
2.朴素贝叶斯分类器要求“属性条件独立假设”即,对于已知类别的样本x,假设x的全部属性是相互独立的。这就致使了两点与逻辑回归的不一样之处:学习
(1)朴素贝叶斯的限制条件比逻辑回归更加严格,意味着逻辑回归的应用范围更广。测试
(2)朴素贝叶斯能够不经过(而不是不能)梯度降低等优化方法进行参数优化,事实上,在利用极大似然法的进行参数估计的时候,因为其严格的条件限制,朴素贝叶斯分类器的相关参数就已经很明确了,或者说是有固定的形式了(此处能够参考:http://www.javashuo.com/article/p-psocyhws-g.html),它能够直接经过统计每一个特征的逻辑发生比来当作权重。;而逻辑回归求得的参数并无明确的形式(由于他没有朴素贝叶斯那么严格的限制条件),能够经过梯度降低法等优化方法,获得特征之间的耦合信息,从而获得相应的权重(参数)。优化
3.更直观的来看,逻辑回归是经过学习超平面来实现分类,而朴素贝叶斯经过考虑特征的几率来实现分类。spa
4.逻辑回归在有相关性feature上面学习获得的模型在测试数据的performance更好。也就是说,逻辑回归在训练时,无论特征之间有没有相关性,它都能找到最优的参数。而在朴素贝叶斯中,因为咱们给定特征直接相互独立的严格设定,在有相关性的feature上面学习到的权重同时变大或变小,它们之间的权重不会相互影响。从这方面来讲,若是可以在对参数较好地控制,在损失项方面处理的很好的话,逻辑回归相对朴素贝叶斯在应用时更不会限制在特征工程(feature engineering)上面。(简言之,逻辑回归对特征工程的要求相对朴素贝叶斯更低)orm
5.朴素贝叶斯的好处是没有优化参数这一步(由2可知),经过训练数据能够直接获得一个counting table,这些有助于并行化。
6.Andrew Ng和Michael Jordan在2001年发了一篇NIPS短文《 On Discriminative vs. Generative classifiers: A comparison of logistic regression and naive Bayes 》,他们把这两个模型用在各类数据集上面进行测试,最后获得在小数据上面朴素贝叶斯分类器能够取得更好的效果,随着数据的增多、特征维度的增大,逻辑回归的效果更好。这也是由于朴素贝叶斯是生成模型,在有prior的状况下模型可以把数据fit的更好,而逻辑回归属于判别模型,目标驱动化,不去建模联合几率,经过训练数据直接预测输出,所以在数据足够多的状况下可以获得更好一些的效果。
三.二者的相同点
1.二者都利用了极大似然法进行参数估计。虽然似然函数的目标不一样。
2.逻辑回归和朴素贝叶斯分类器都是对特征的线性表达,虽然二者拟合的参数不一样,前者是W和b后者是先验几率和似然(参考:http://www.javashuo.com/article/p-psocyhws-g.html)。
3.逻辑回归和朴素贝叶斯建模的都是条件几率(后者经过贝叶斯公式获得) ,对所最终求得的不一样类的结果有很好的解释性。而不像SVM,神经网络这样解释性不高。
参考:http://sunshiningjiang.github.io/2015/05/08/Comparision-between-Logistic-Regression-and-Naive-Bayes/