朴素贝叶斯

朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分类算法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入xx,利用贝叶斯定理求出后验概率最大的输出yy(基于贝叶斯定理使用先验概率求后验概率,将最大的后验概率对应的类别作为样本的类别)。

朴素贝叶斯实际上学习到生成数据的机制,所以属于生成模型,条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。

朴素贝叶斯分类时,对于给定的输入xx,通过学习到的模型计算后验概率分布P(Y=ckX=x)P(Y=c_{k}|X=x),将后验概率最大的类作为xx的类别输出,后验概率计算根据贝叶斯定理:P(Y=ckX=x)=P(X=xY=ck)P(Y=ck)kP(X=xY=ck)P(Y=ck)P(Y=c_{k}|X=x)=\frac{P(X=x|Y=c_{k})P(Y=c_{k})}{\sum_{k} P(X=x|Y=c_{k})P(Y=c_{k})}(注:一般在计算的时候,不考虑分母,因为分母都一样,可以忽略不计算)

后验概率最化的含义:将输入的样本xx分到后验概率最大的类中,等价于期望风险最小。

极大似然估计

条件概率的极大似然估计:P(X(j)=ajlY=ck)=i=1NI(xj(i)=ajl,yi=ck)i=1NI(yi=ck)P(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x^{(i)}_{j}=a_{jl},y_{i}=c_{k})}{\sum_{i=1}^{N}I(y_{i}=c_{k})}

先验概率的极大似然估计:P(Y=ck)=i=1NI(yi=ck)NP(Y=c_{k})=\frac{\sum_{i=1}^{N}I(y_{i}=c_{k})}{N}

朴素贝叶斯算法步骤

输入:训练数据T={(x1,y1),(x2,y2),...,(xN,yN)}T=\left \{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N}) \right \},其中xi=(xi1,xi2,...,xin)Tx_{i}=(x_{i}^{1},x_{i}^{2},...,x_{i}^{n})^{T}

输出:xx所属的类别

(1)计算先验概率与条件概率

P(Y=ck)=i=1NI(yi=ck)NP(Y=c_{k})=\frac{\sum_{i=1}^{N}I(y_{i}=c_{k})}{N}

P(X(j)=ajlY=ck)=i=1NI(xj(i)=ajl,yi=ck)i=1NI(yi=ck)P(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x^{(i)}_{j}=a_{jl},y_{i}=c_{k})}{\sum_{i=1}^{N}I(y_{i}=c_{k})}

(2)对于给定的实例xx,计算

P(Y=ck)=j=1nP(X(j)=x(j)Y=ck)P(Y=c_{k})=\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})

(3)确定实例xx的类别

y=arg maxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)y=arg \ max_{c_{k}}P(Y=c_{k})\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})

例题1(来源统计学习方法)
朴素贝叶斯

朴素贝叶斯

贝叶斯估计

当测试的时候出现训练样本中没有出现的样本的时候,使用极大似然估计会出现概率值为0的情况,为了避免计算出的概率值为0,使用贝叶斯估计(在随机变量的各个取值的频数上赋予一个正数λ>0\lambda>0,当λ=0\lambda=0的时候,就是极大似然估计,当λ=1\lambda=1的时候,称为拉普拉斯平滑)

条件概率的贝叶斯估计:Pλ(X(j)=ajlY=ck)=i=1NI(xj(i)=ajl,yi=ck)+λi=1NI(yi=ck)+SjλP_{\lambda}(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x^{(i)}_{j}=a_{jl},y_{i}=c_{k})+\lambda}{\sum_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda}SjS_{j}为特征取之的种类数

先验概率的贝叶斯估计:Pλ(Y=ck)=i=1NI(yi=ck)+λN+KλP_{\lambda}(Y=c_{k})=\frac{\sum_{i=1}^{N}I(y_{i}=c_{k})+\lambda}{N+K\lambda}KK为总的类别数

例题2(来源统计学习方法)
朴素贝叶斯

以上仅是个人学习笔记,如有错误,望指出

参考

1、李航,统计学习方法

2、周志华,机器学习