码迷,mamicode.com
首页 > 其他好文 > 详细

统计学习四:1.朴素贝叶斯

时间:2018-09-19 21:46:57      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:通过   随机   引用   样本   分类   这一   算法   ali   begin   

全文引用自《统计学习方法》(李航)

朴素贝叶斯(naive Bayes)法 是以贝叶斯定理为基础的一中分类方法,它的前提条件是假设特征条件相互独立。对于给定的训练集,它首先基于特征条件假设的前提条件,去学习输入与输出的条件概率分布,然后根据此分布模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

1.朴素贝叶斯的学习与分类

1.1 基本方法

假设输入空间\(X \subseteq R^n\)为n维向量的集合,输入空间为类标记集合\(Y=\{c_1,c_2,\cdots,c_K\}\),输入为特征向量\(x \in X\),输出为类标记\(y \in Y, P(X,Y)\)是X和Y的联合概率分布,训练数据\(T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_{_N},y_{_N})\}\)\(P(X,Y)\)独立同分布生成。
朴素贝叶斯法是一种生成模型,是通过训练数据集来学习联合概率分布\(P(X,Y)\),进而对新的输入数据进行预测的模型。而其具体的学习过程,就是学习先验概率分布和条件概率分布:

  • 先验概率分布:
    \[ P(Y=c_k), k = 1,2,\cdots,K \]
  • 条件概率分布:
    \[ P(X=x|Y=c_k)=P(X^{(1)},\cdots,X^{(n)}|Y=c_k),k=1,2,\cdots,K \]
    而后通过两者求得联合概率分布\(P(X,Y)\)

条件概率分布\(P(X=x|Y=c_k)\)的计算通常是不可行的,因为计算参数的个数往往可能有指数级的。假定\(x^{(j)}\)可能的取值有\(S_j\)个,\(j=1,2,\cdots,n,\)Y的可能取值有K个,那么实际上参数的个数是\(K \prod_{j=1}^nS_j\)
而朴素贝叶斯法有一个较强的前提假设,即条件独立性假设,因此条件概率满足:
\[ \begin{aligned} P(X=x|Y=c_k) &= P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)\&= \prod_{j=1}^nP(X^{(j)=x^{(j)}|Y=c_k}) \end{aligned} \]
条件独立假设等于是说用于分类的特征在类确定的条件下,都是条件独立的。因此这一假设使得朴素贝叶斯法变得非常简单,但是由于各个条件在大多数情况下并非独立的,而是相互间会有一定的联系,因此这个假设会牺牲模型的一定的准确性。
朴素贝叶斯法通过求解给定的输入x的后验概率分布\(P(Y=c_k|X=x)\),并将概率最大的类作为x的类。
后验概率:
\[ P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)} \]
由条件独立性假设,可知:
\[ P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)} \]
这便是朴素贝叶斯法最基本的公式。
因此,朴素贝叶斯法表示为:
\[ y=f(x)=\arg\max_{c_k}\frac{P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k)} \]
由于上式中,分母对于任意类型都是恒定的值,因此可以简化为:
\[ y=\arg\max_{c_k}P(Y=c_k)\prod_jP(P(X^{(j)}=x^{(j)})|Y=c_k) \]

1.2 后验概率最大化的含义

朴素贝叶斯法将输入实例划分为后验概率最大的类,实际上等价于期望风险最小化。
假设损失函数为0-1损失函数:
\[ L(Y,f(X))= \begin{cases} 1,Y\neq f(X)\0,Y=f(X) \end{cases} \]
式中\(f(x)\)是分类决策函数,那么期望风险为:
\[ R_{exp}(f)=E[L(Y,f(X))] \]
上述期望是对联合分布\(P(X,Y)\)所取,因此:
\[ R_{exp}=E_X\sum_{k=1}^{K}\left[L(c_k,f(X))\right]P(c_k|X) \]
为使期望风险最小话,只需\(X=x\)逐个极小化,因此:
\[ \begin{aligned} f(x) &=\arg\min_{y\in Y}\sum_{k=1}^{K}L(c_k,y)P(c_k|X=x)\&=\arg\min_{y\in Y}\sum_{k=1}^{K}P(y\neq c_k|X=x)\&=\arg\min_{y\in Y}\sum_{k=1}^{K}(1-P(y=c_k|X=x))\&=\arg\min_{y\in Y}P(y=c_k|X=x) \end{aligned} \]
因此,根据期望风险最小化准则,可以得到后验概率最大化准则:
\[ f(x)=\arg\max_{c_k}P(c_k|X=x) \]
即朴素贝叶斯法所采用的方法。

2. 朴素贝叶斯法的参数估计

2.1 极大似然估计

在朴素贝叶斯法的中,模型的学习就是指对\(P(Y=c_k)\)\(P(X^{(j)}=x^{(j)}|Y=c_k)\)的估计。应用极大似然估计可以估计所需的概率。
先验概率\(P(Y=c_k)\)的极大似然估计是:
\[ P(Y=c_k)=\frac{\sum_{i=1}I(y_i=c_k)}{N},k=1,2,\cdots,K \]
设第j个特征\(x^{(j)}\)可能的取值集合为\(\{a_{j1,a_{j2},\cdots,a_{jS_j}}\}\),条件概率\(P(X^{(j)}=x^{(j)}|Y=c_k)\)的极大似然估计为:
\[ \begin{aligned} 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)}\j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K\\end{aligned} \]
式中,\(x_i^{(j)}\)是指第i个样本的第j个特征,\(a_{jl}\)是指第j个特征可能取的第l个值,I为指示函数。

2.2 学习与分类算法

朴素贝叶斯法的学习过程,实际上就是利用训练数据集计算先验概率和条件概率的过程。而其分类过程,就是求取最大的后验概率的过程。具体的算法过程为:

  • 计算先验概率和条件概率
    \[ \begin{aligned} P(Y=c_k)=\frac{\sum_{i=1}I(y_i=c_k)}{N},k=1,2,\cdots,K\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)}\j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K\\end{aligned} \]
  • 对于给定的实例\(x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T\),计算
    \[ P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k),k=1,2,\cdots,K \]
  • 最后分类过程,确定实例x类:
    \[ y=\arg\max_{c_k}P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \]
    通过以上方式,就可以利用朴素贝叶斯法对实例进行分类。
2.3 贝叶斯估计

在利用极大似然估计时,可能会出现所估计的概率值为0的情况,这对后验概率的计算会有极大的影响,使分类结果产生偏差。可以利用贝叶斯估计法来解决这类问题情况。
条件概率的贝叶斯估计是指:
\[ P_\lambda(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{j=1}^NI(y_i=c_k)+S_j\lambda} \]
其中\(\lambda\geq0\)等价于在随机变量各个取值的频数上加上一个正数\(\lambda>0\),当\(\lambda = 0\)时,即为极大似然估计。在实际的应用中,通常取\(\lambda = 1\),此时称为拉普拉斯平滑(laplace smoothing),由此可得,对于任意\(l=1,2,\cdots,S_j,k=1,2,\cdots,K\),有
\[ P_\lambda(X^{(J)}=a_{jl}|Y=c_k)>0 \sum_{l=1}^{S_j}P(X^{(j)}=a_{jl}|Y=c_k)=1 \]
同样,先验概率的贝叶斯估计是:
\[ P_\lambda(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda} \]
通过以上贝叶斯估计,就可以有效避免出现所要估计的概率值为0的情况。

统计学习四:1.朴素贝叶斯

标签:通过   随机   引用   样本   分类   这一   算法   ali   begin   

原文地址:https://www.cnblogs.com/zhiyuxuan/p/9676563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!