逻辑回归 和 朴素贝叶斯 两者间的区别

来源:互联网 发布:安能久事笔砚间乎翻译 编辑:程序博客网 时间:2024/06/05 20:35

在有监督学习算法用做分类问题时,有两种算法在实际中应用广泛,它们分别是Logistic regression和Naive bayes。今天我们讨论一下这两类算法在分类问题上面的异同点,以及它们的优缺点。

1.两类算法介绍

 

Logistic Regression

QQ截图20150509193641

QQ截图20150509193547

Naive Bayes

Naive Bayes模型是说我有一个很强的假设,这个假设是在y给定的条件下,xi相互独立,这个假设看上去非常stupid,但是在实际应用(比如垃圾邮件检测)中能够work非常好。这一方面也验证了Occam’s Theory: Simple model is better。继续主题,既然xi相互独立,我们想对测试数据x^进行预测,可以通过如下方法:

QQ截图20150509193556

在这里,QQ截图20150509193855可以通过条件独立性写成:

QQ截图20150509193602

而分母可以通过联合概率写成:

QQ截图20150509193613

QQ截图20150509193922

好的,下面我们开始分析Logistic Regression和Naive Bayes的异同点。

2.两者的异同点

 

相同点

  • Logistic regression和Naive bayes都是对特征的线性表达QQ截图20150509194002,只是区别在于两者所fit的参数不同。
  • Logistic regression和Naive bayes建模的都是条件概率QQ截图20150509194012,对所最终求得的不同类的结果有很好的解释性。而不像SVM,神经网络这样解释性不高。

不同点

  • Logistic regression在有相关性feature上面学习得到的模型在测试数据的performance更好。也就是说,logistic regression在训练时,不管特征之间有没有相关性,它都能找到最优的参数。而在Naive bayes中,由于我们给定特征直接相互独立的严格设定,在有相关性的feature上面学习到的权重同时变大或变小,它们之间的权重不会相互影响。从这方面来说,如果能够在对参数较好地控制,在损失项方面处理的很好的话,Logistic regression相对Naive bayes在应用时更不会限制在特征工程(feature engineering)上面。
  • Naive bayes的好处是我没有优化参数这一步,通过训练数据我直接得到一个counting table,这些有助于并行化。
  • 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的更好,而Logistic regression属于生成模型,目标驱动化,不去建模联合概率,通过训练数据直接预测输出,因此在数据足够多的情况下能够得到更好一些的效果。

 

作者:Yong Jiang

文章出处:http://sunshiningjiang.github.io/