一个利用贝叶斯公式来进行分类的naive方法,它建立在一个很强悍的假设条件上:即特征之间都是相互独立的,且特征们是同等重要的
贝叶斯公式
xi
是我们的特征,也是一个随机变量,上述式子所表明的意义:若已知
y
发生的概率以及
好吧,上面这段写的自己都看不明白了。以文本分析为例,如果要给一些文本去按主题分类,这里的
既然我们只想知道哪个
y
使
然而这个条件联合概率
P(x1,...,xn|y)
也不是好求的啊,这时候朴素里的条件独立性假设就派上用场了,既然条件独立,那么
这样,目标函数就出炉了:
当然,这个条件独立性假设其实是不太合理,有些时候有些词之间就是会有很强的相关性。针对这种情况,我们可以调整一下朴素贝叶斯的词典设置,不仅以单个的词汇做特征,还可以以连续的两个词等,此为ngram,在之后的sklearn naive bayes库里会提到。
另外还可以根据词汇之间的相关性绘制概率图模型,偶们称之为贝叶斯网络,较出名的即为马尔科夫模型,此为后话。
根据 P(xi|y) 服从的概率分布不一样,朴素贝叶斯方法也可分为以下几类
- 高斯NB
P(xi|y)=12πδ2y−−−−√exp(−(xi−μy)22δ2y)
其中的参数是通过极大似然估计获得的。
- 多项式NB
将词汇出现的频率作为概率
这里
Nyi=∑x∈Txi
是训练集中第
y
类里第
分子分母都加上一个数主要是因为,若
- 伯努利NB
不管频率多少,只看出现或是不出现,这就是伯努利贝叶斯的方法:
P(xi|y)=P(i|y)xi+(1−P(i|y))(1−xi)
公式不是很懂,意思就是那么个意思,留个疑问吧。这种binary的方法一般在文档较短的时候效果可能会好。因此做文本分析时可以都尝试一下。