华电北风吹
日期:2015/12/12
朴素贝叶斯算法和高斯判别分析一样同属于生成模型。但朴素贝叶斯算法需要特征条件独立性假设,即样本各个特征之间相互独立。
一、朴素贝叶斯模型
朴素贝叶斯算法通过训练数据集学习联合概率分布
p(x,y),其中x=(x1,x2,...,xn)∈Rn,y∈R
。具体的对于K分类问题就是需要学习一个类别的先验概率分布
p(y=ck),k=1,2,...,K
和每个类别下的条件概率分布(如式1-1)
p(x|y)=p(x1,x2,...,xn|y)(1-1)
由于朴素贝叶斯算法没有假设特征的分布,因此需要将每个特征量化为离散型变量,然后学习各个特征水平下的条件概率。如果各个特征
xi
被分别量化为
Si
个水平,那么共有
K+K∏ni=1Si
个需要学习的参数。
但是,为了使朴素贝叶斯算法变得简单点—主要是减少参数个数,就强加了一个条件概率分布的独立性假设(具体如式1-2)
p(x|y)=p(x1,x2,...,xn|y)=∏ni=1P(xi|y)(1-2)
这样需要学习的参数个数就变为
K+K∑ni=1Si
个,大大的简化了模型。
二、朴素贝叶斯参数估计
在条件独立性假设下,贝叶斯模型的参数学习就简化为类别先验概率
p(y=ck)
和条件概率
p(xi|y)
的学习。
1、极大似然估计
对于训练数据集
(x(i),y(i)),x(i)∈Rn,y(i)∈R
,似然函数如下,
L(ϕy,ϕx|y)=∏mi=1p(x(i),y(i))=∏mi=1p(y(i))∏nj=1p(x(i)j|y(i))(2-1)
结合
∑yϕy=1
以及
∑Sip(xi|y)=1
,可以容易得到下式(简单的求偏导即可,两式均是):
ϕy=k=∑mi=11{y(i)=k}m(2-2)
ϕxi=j|y=k=∑mi=11{y(i)=k⋂xi=j}∑mi=11{y(i)=k}(2-3)
2、古德-图灵估计
主要用于解决统计样本不足的概率估计问题,主要思想是在统计中相信可靠的统计数据,而对不可信的统计数据打折扣的一种概率估计方法,同时将折扣出来的那一小部分概率给予为看见的事件。
3、贝叶斯估计(拉普拉斯光滑)
在公式2-2和2-3中,会出现分子分母同为0的情况。解决这种情况的方案如下:
ϕy=k=∑mi=11{y(i)=k}+λm+Kλ(2-4)
ϕxi=j|y=k=∑mi=11{y(i)=k⋂xi=j}+λ∑mi=11{y(i)=k}+Sjλ(2-5)
其中
λ≥0
.一般取
λ=1
。
三、朴素贝叶斯决策方法—最大后验概率
对于测试数据
x∈Rn
,朴素贝叶斯模型采用贝叶斯规则决策,具体表述如下:
p(y|x)=argmaxkp(y=k)p(x|y=k)
采用后验概率最大的类别作为模型输出类别。
现在仔细想想感觉朴素贝叶斯跟k-means逻辑上的思路还是比较接近的。