1.写在前面
朴素贝叶斯算法它是一种分类算法
概率论里面学过贝叶斯定理,这里的朴素贝叶斯算法就是以贝叶斯定理为基础
那么如何分类呢?举个简单的例子,现在有两队人分别是A队和B队,已知A队的人中有长头发的,也有短头发的,同时有高个子的,也有矮个子的。而B队的人呢,有长头发的,也有短头发的,同时有高个子的,也有矮个子的。现在远处迎面走来一个人,你不知道他是A队还是B队,但是你清楚的是他的特征,他是长头发的,高个子的。那应该把他分到哪一队呢?
这个问题就可以用朴素贝叶斯算法来解
2.贝叶斯定理
P(A|B)=P(AB)/P(B)
贝叶斯定理是基于条件概率的等式定理
P(B|A)=P(A|B)P(B)/P(A)
贝叶斯定理只是对公式一分子部分进行了等式变换
3.朴素贝叶斯算法介绍
给定训练数据集(x,y),其中每个样本x都有n维特征,x=(x1,x2,...,xn),类别标记集合有m种类别,y=(y1,y2,...,ym),新来一个样本x,该如何判断它是属于那一类别呢?我们需要判断x属于哪一个类别的概率大,那它就属于哪一类别,即比较P(y1|x),P(y2|x),P(y3|x),...,P(ym|x)的大小,哪个最大属于哪一类别。这就需要用到贝叶斯定理
图片中推导
4.三种常见模型
(1)多项式模型
当特征是离散值时,采用多项式模型,需要做平滑处理
(2)高斯模型
当特征值为连续值时,采用高斯模型。为什么呢?因为当特征值是连续型值,再采用多项式模型,如果不进行平滑处理,计算P(xi|yk)时会导致很多P(xi|yk)=0
(3)伯努利模型
当特征值是离散值时,采用伯努利模型。与多项式模型不同的是,伯努利模型的特征值取值只能为0或1
比如以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0
计算公式如下:
xi=1,P(xi|yk)=P(xi=1|yk);
xi=0,P(xi|yk)=P(xi=0|yk);[/cp]