朴素贝叶斯
1 朴素贝叶斯为什么叫朴素贝叶斯?
因为这种方法是基于贝叶斯定理,顺便复习一下贝叶斯定理的表达式:
P(Bi|A)=P(A|Bi)P(Bi)∑Nj=1P(A|Bj)P(Bj) 朴素贝叶斯法对条件概率分布作了条件独立性的假设,这是一个很强的假设,所以对应 “朴素” 二字。条件独立性假设 就是说用于分类的特征在类确定的条件下都是条件独立的。这个假设使得朴素贝叶斯变简单了,但也牺牲了一定的准确率, 条件独立性假设表达式:
2 朴素贝叶斯的学习与分类
2.1 学习方法
朴素贝叶斯法通过训练数据集学习联合概率分布
学习先验概率分布:
P(Y=ck),k=1,2,⋯,K 学习条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),⋯,X(n)|Y=ck),k=1,2,⋯,K
于是学习到联合概率分布
2.2 分类方法
朴素贝叶斯分类时,对给定的输入
之前说过朴素贝叶斯“朴素”的原因就是对条件概率分布做了条件独立性的假设。所以我们把条件独立性假设的公式带入上式,得:
于是就得到了朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可以表示为:
注意到分母其实是一个归一化因子,对于所有的类别都是相同的可以,继续化简为:
2.3 后验概率最大化的含义
朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。
为什么会等价于期望风险最小化?来看看推导
- 假设选择
0−1 损失函数:
L(Y,f(X))=⎧⎩⎨⎪⎪1,0,Y≠f(X)Y=f(X)
式中f(X) 是分类决策函数,这时,期望风险函数为:
Rexp=E[L(Y,f(X))]
期望是联合分布P(X,Y) 取的,由此取条件期望:
Rexp(f)=Ex∑k=1K[L(ck,f(X))]P(ck|X)
为了使期望风险最小化,只需要对X=x 逐个极小化,得:
f(x)=argminy∈∑k=1K[L(ck,f(X))]P(ck|X)=argminy∈∑k=1KP(y≠ck)P(ck|X)=argminy∈(1−P(y=ck|X))=argmaxy∈P(y=ck|X=x)
这样就从期望风险最小化的角度出发导出了分类决策函数
3 朴素贝叶斯的参数估计
3.1 极大似然估计
在朴素贝叶斯法中,学习意味着估计
1. 先验概率
这个是怎么得到的? 下面我们来进行一个推导:
这其实就是一个二项分布求极大似然估计的问题
- 设
P(Y=ck)=p ,则P(Y≠ck)=1−p ,令随机变量Z=1 当Y=ck 时,Z=0 当Y≠ck 时。 那么将两部分概率整合到一起写成:
P(Z=zi)=pzi(1−p)(1−zi),zi∈{0,1} - 假设
d=∑Ni=1I(yi=ck) ,也就是说N 个样本中标签是ck 的样本一共有d 个,则整个训练集可以用一个0,1 向量来表示,其中yi=ck 则Zi=1 否则Zi=0 ,则所有样本的联合概率分布为:
P=pd(1−p)N−d
对上式取对数:
L(p)=dlogp+(N−d)log(1−p)
求偏导令导数为0:
∂L∂p=dp−N−d1−p=0
解得p=dN 取极值。
2. 条件概率的极大似然估计:
设第
推导方法和上面一样,这里不再赘述啦。
3.2 贝叶斯估计
用极大似然估计可能会出现索要估计的概率值为0的情况. 这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。具体的
1. 条件概率的贝叶斯估计是:
其中
2. 先验概率的贝叶斯估计是: