你觉得朴素贝叶斯朴素吗? 个人觉得,一点也不朴素,如同“平凡出真知”,朴素贝叶斯还是很挺厉害的。如果想要了解朴素贝叶斯,那么需要先了解贝叶斯估计和极大似然估计。
极大似然估计
对于一个数据集T服从概率分布P,但是P中参数未知,针对极大似然估计,就是将未知参数看作一个定值,从而找未知参数能使得数据集T发生的概率最大。
极大似然估计:假设某个数据集T(x1,x2,...,xn)服从正态分布X N(μ,σ2),但是某具体参数θ未知,如何通过极大似然估计得到θ^使得随机样本出现的概率最大?求解过程:(1)正态分布下μ的极大似然估计是:f(x)=2πσ1e−2σ2(x−μ)2(2)损失函数:L(μ)=i=1∏n2πσ1e−2σ2(xi−μ)2(3)取对数:lnL(μ)=−nln(2π)2σ21i=1∑n(xi−μ)2(4)求导:∂μ∂lnL(μ)=−σ21i=1∑n(xi−μ)2(5)令导数为0:∂μ∂lnL(μ)=0=>μ^=n1i=1∑nxi=x
贝叶斯估计
相比较贝叶斯估计,极大似然估计会出现概率为0的情况。
假设样本D(x1,x2...xn)是正态分布N(μ,σ2),其中σ2已知。假设μ的先验分布是正态分布N(0,τ2),如果每个样本的概率独立且同步分布,那么贝叶斯估计?(1)第一步:假设数据集D的全概率为P(D),那么p(μ∣D)=P(D)P(D∣μ)P(μ),其中P(μ)是服从N(0,τ2)分布的先验概率,从而得到L(μ):L(μ)=P(μ∣D)=P(D)P(D∣μ)P(μ)=∫P(μ,x1,x2,...xn)dμP(μ)P(x1∣μ)P(x2∣μ)...P(xn∣μ),由此看出∫P(μ,x1,x2,...xn)dμ是一个常数,可以记作K。=K2πτ1e−2τ2μ2i=1∏n2πσ1e−2σ2(xi−μ)2(2)第二步:取对数。lnP(μ∣D)=−2τ2μ2K+i=1∑n(−2σ2(xi−μ)2)(3)第三步:求导。∂μ∂ln=−τ2μ+i=1∑n(−σ2(xi−μ))(4)第四步:令导数为0。可得到:μ^=n+τ2σ2∑i=1nxi由此可以看出,当n→∞,贝叶斯估计概率和极大似然估计概率是差不多的,但是如果n→0,贝叶斯估计不会等于0,相对而言,更加精确些。
朴素贝叶斯法
朴素贝叶斯(Native Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。
朴素贝叶斯实际上学习到的是生成数据机制,因此属于生成模型。
朴素贝叶斯法的基本假设是条件独立性。
朴素贝叶斯模型
设输入空间χ⊆Rn为n维向量的集合,输出空间维类标记集合Y=(c1,c2,..cK)。输入为特征向量x∈χ,输出标记y∈Y,P(X,Y)是X和Y的联合概率分布。训练数据集T={(x1,y1),(x2,y2),...(xN,yN)}。朴素贝叶斯分类时,对给定的输入x,朴素贝叶斯分类器模型如下:y=f(x)=argmax∑KP(Y=cK)∏jP(X(j)=x(j)∣Y=cK)P(Y=cK)∏jP(X(j)=x(j)∣Y=cK)
损失函数
朴素贝叶斯法将实例分到后验概率最大的类中,这损失函数正符合0-1损失函数。根据期望风险最小化准则得到后验概率最大化准则:
f(x)=argmaxcKP(cK∣X=x)
参数估计就是采用上面刚开始谈到的极大似然估计和贝叶斯估计。
朴素贝叶斯算法
输入:训练数据集T={(x1,y1),(x2,y2),...(xN,yN)},其中xi=(xi(1),xi(2),...xi(n))T,xi(j)表示第i个样本的j个特征,xi(j)∈{aj1,aj2...ajSj},ajl是第j个特征可能取得第l个值,j=1,2..n,l=1,2,..Sj,yi∈{c1,c2,...cK};实例x;输出:实例x的分类。(1)计算先验概率以及每个条件概率P(Y=cK)=N∑i=1NI(yi=cK),k=1,2,...KP(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)∑i=1NI(xi(j)=ajl,yi=cK),j=1,2...n;l=1,2,..Sj;k=1,2,...K(2)计算每个标签下的实例的概率P(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK),k=1,2...K(3)确定的实例x的类。y=argmaxcKP(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK)
在朴素贝叶斯估计中,条件概率的贝叶斯估计是:
Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ当λ≥0,等价于在随机变量上各个取值的频数上赋予一个正数λ。当λ=0,贝叶斯估计等于极大似然估计。常取λ=1,这时称为拉普拉斯平滑(LaplaceSmoothing)。此时有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ当λ≥0,等价于在随机变量上各个取值的频数上赋予一个正数λ。当λ=0,贝叶斯估计等于极大似然估计。常取λ=1,这时称为拉普拉斯平滑(LaplaceSmoothing)。此时有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1
先验概率的贝叶斯估计是:
Pλ(Y=cK)=N+Kλ∑i=1NI(yi=cK)+λ,k=1,2,3...K,l=1,2,3...Sj
小结
朴素贝叶斯是在条件独立性的基础上的,由于这一假设,模型包含的条件概率的数量大大减少,朴素贝叶斯法的学习与预测大为简化。因此朴素贝叶斯法高效,且易于实现,缺点就是分类的性能不一定很高。