美文网首页AI
朴素贝叶斯法

朴素贝叶斯法

作者: sarai_c7eb | 来源:发表于2019-08-22 19:12 被阅读0次

朴素贝叶斯法是基于贝叶斯定理特征条件独立假设的分类方法。
首先基于特征条件独立假设学习输入/输出的联合概率分布;
然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y
朴素贝叶斯实现简单,学习与预测的效率都很高,是一种常用方法。

1 条件概率和贝叶斯公式

首先让我们重温一下概率论上的两个知识点:条件概率和贝叶斯公式。
条件概率:
A事件发生条件下B事件发生的概率:

  • 首先需要事件A发生:P(A)
  • 事件A发生条件下事件B发生的概率:P(B\mid A)
  • 根据个人理解,P(AB)(事件A与事件B同时发生的概率)应该是事件A发生后,乘以事件A中B发生的概率;也等于事件B发生后,乘以事件B中A发生的概率。

P(AB)=P(A)*P(A\mid B)=P(B)*P(A\mid B)
所以条件概率可以表示为:
\begin{eqnarray} P(A \mid B)=\frac{P(AB)}{P(B)} \\ P(B \mid A)=\frac{P(AB)}{P(A)} \end{eqnarray}

贝叶斯公式:
一般情况下P(AB)很难获得,所以条件概率可以写成如下形式:
P(B\mid A)=\frac{P(B)*P(A\mid B)}{P(A)}
这就是简单的贝叶斯公式
P(B)称为先验概率P(B\mid A)后验概率,可以理解前者是一件事情发生的概率,后者是给出一定条件下前一件事情发生的概率;
\frac{P(A\mid B)}{P(A)}也被称为调整因子;

  • 调整因子大于1,条件发生后,后验概率被放大;
  • 调整因子小于1,条件发生后,后验概率被缩小;
  • 调整因子等于1,条件发生后,后验概率没有概率;

例如:
P(B)表示发生心脏病的概率,P(A)表示肥胖的概率;
如何估计肥胖的人犯心脏病的概率,即求解P(B\mid A)?
如果心脏病概率P(B),肥胖率P(A)都知道,而且可以从医院获得心脏病人肥胖的概率P(A\mid B),那么就可以根据贝叶斯公式获得肥胖人得心脏病的概率。

2 朴素贝叶斯法的学习与分类

2.1基本方法

设输入空间\chi\subseteq R^nn维向量的集合,输出空间为类标记集合Y=\{c_1,c_2,...,c_K\}
输入为特征向量x\in\chi,输出为类标记(class label)y\in Y;
X是定义在输入空间\chi上的随机向量,Y是定义在输出空间Y上的随机变量。
P(X,Y)XY的联合概率分布,训练数据集:
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
P(X,Y)独立同分布产生。

朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y);具体讲,学习以下先验概率分布及条件概率分布;
先验概率:P(Y=c_k),k=1,2,...,K
条件概率分布:
P(X=x\mid Y=c_k)=P(X^{(1)}=x^{(1)},...,P(X^{(n)}=x^{(n)}\mid Y=c_k)
从而学习到联合概率分布P(X,Y)。

条件概率分布P(X=x\mid Y=c_k)有指数级数量的参数,其估计是不可行的,事实上,假设x^{(j)}可取值有S_j个,j=1,2,...,nY可取值有K个,那么参数个数为K\prod_{j=1}^n S_j

朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是个较强的假设,朴素贝叶斯法也由此得名;具体地,条件独立性假设是
\begin{eqnarray} P(X=x\mid Y=c_k)&=&P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}\mid Y=c_k) \\ &=&\prod_{j=1}^nP(X^{(j)}=x^{(j)}\mid Y=c_k) \end{eqnarray}

朴素贝叶斯分类时,对给定输入x,通过学习到的模型计算后验概率分布P(Y=c_k\mid X=x),将后验概率最大的类作为x的类输出,后验概率就按根据贝叶斯定理进行:
P(Y=c_k\mid X=x)=\frac{P(X=x\mid Y=c_k)P(Y=c_k)}{\sum_k{P(X=x\mid Y=c_k)P(Y=c_k)}}

将条件独立性假设代入上式中:
P(Y=c_k\mid X=x)=\frac{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}\mid Y=c_k)}{\sum_k{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}\mid Y=c_k)}}

上式即为朴素贝叶斯分类的基本公式
于是朴素贝叶斯分类器可表示为:
y=f(x)=arg \max_{c_k}\frac{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}\mid Y=c_k)}{\sum_k{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}\mid Y=c_k)}}

上式中分母对所有c_k都是相同的,所以:
y=arg \max_{c_k} P(Y=c_k) \prod_j P(X^{(j)}=x^{(j)}\mid Y=c_k)

3 朴素贝叶斯法的参数估计

先补一下课吧,MLE和MAP以及频率学派与贝叶斯学派的讨论参考:
《聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计》

3.1 极大似然估计

先验概率P(Y=c_k)的极大似然估计:
P(Y=c_k)=\frac{\sum_{i=1}^N{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)}=a_{jl}\mid Y=c_k)
P(X^{(j)}=a_{jl}\mid Y=c_k)=\frac{\sum_{i=1}^N{I(x_i^{(j)}=a_{jl},y_i=c_k)}}{\sum_{i=1}^NI(y_i=c_k)}
j=1,2,\cdots,n; l=1,2,\cdots,S_j;k=1,2,\cdots,K
x_i^{(j)}是第i个样本的第j个特征;a_{jl}是第j个特征可能取的第l个值;I为指示函数;

3.2 学习与分类算法

朴素贝叶斯算法:
输入:训练数据T=\{(x_1,y_1),(x_2,x_2), \cdots,(x^N,y^N)\},其中x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^Tx_i^{(j)}是第i个样本的第j个特征,x_i^{(j)}\in\{a_{j1},a_{j2},\cdots,a_{jS_j} \}a_{jl}是第j个特征可能取得第l个值;
j=1,2,\cdots nl=1,2,\cdots S_jy\in\{c_1,c_2,\cdots,c_k\}
输出:实例x的分类。

  1. 计算先验概率及条件概率
    P(Y=c_k)=\frac{\sum_{i=1}^N{I(y_i=c_k)}}{N},k=1,2,\cdots,K
    P(X^{(j)}=a_{jl}\mid Y=c_k)=\frac{\sum_{i=1}^N{I(x_i^{(j)}=a_{jl},y_i=c_k)}}{\sum_{i=1}^NI(y_i=c_k)}
    j=1,2,\cdots,n; l=1,2,\cdots,S_j;k=1,2,\cdots,K
  2. 对于给定的实例x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T,计算:
    P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)} \mid Y=c_k),k=1,2,\cdots,K

书上实例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
x^{(1)} 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
x^{(2)} S M M S S S M M L L L M M L L
Y -1 -1 1 1 -1 -1 -1 1 1 1 1 1 1 1 1

根据算法,首先计算先验概率和条件概率:


P(Y=1)=\frac{9}{15},P(Y=-1)=\frac{6}{15}
P(X^{(1)}=1\mid Y=1)=\frac{2}{9},P(X^{(1)}=2\mid Y=1)=\frac{3}{9},P(X^{(1)}=3\mid Y=1)=\frac{4}{9}
P(X^{(2)}=S\mid Y=1)=\frac{1}{9},P(X^{(2)}=M\mid Y=1)=\frac{4}{9},P(X^{(2)}=L\mid Y=1)=\frac{4}{9}


P(X^{(1)}=1\mid Y=-1)=\frac{3}{6},P(X^{(1)}=2\mid Y=-1)=\frac{2}{6},P(X^{(1)}=3\mid Y=-1)=\frac{1}{6}
P(X^{(2)}=S\mid Y=-1)=\frac{3}{6},P(X^{(2)}=M\mid Y=-1)=\frac{2}{6},P(X^{(2)}=L\mid Y=-1)=\frac{1}{6}


对于给定的x=(2,S)^T,计算:
P(Y=1)P(X^{(1)}=2\mid Y=1)P(X^{(2)}=S\mid Y=1)=\frac{9}{15}\cdot\frac{3}{9}\cdot\frac{1}{9}=\frac{1}{45}
P(Y=-1)P(X^{(1)}=2\mid Y=-1)P(X^{(2)}=S\mid Y=-1)=\frac{6}{15}\cdot\frac{2}{6}\cdot\frac{3}{6}=\frac{1}{15}

所以得出y=-1

3.3 贝叶斯估计

极大似然估计可能会出现所估计的概率值为0的情况,这时会影响到后验概率的计算结果,使分类产生偏差,解决这一问题的方法是采用贝叶斯估计,具体地,条件概率的贝斯估计是:
P_\lambda(X^{(j)}=a_{jl}\mid 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}

  • \lambda>=0 等价于在随机变量各个取值的频数上赋予一个正数\lambda
  • \lambda=0就变成了极大似然估计;
  • \lambda=1称为拉普拉斯平滑;
    同样,先验概率的贝叶斯估计是:
    P_\lambda(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)+\lambda}{N+K\lambda}

同上例,\lambda=1A_1=\{1,2,3\},A_2=\{S,M,L\},C=\{-1,1\}


P(Y=1)=\frac{9+1}{15+2},P(Y=-1)=\frac{6+1}{15+2}\text{}
P(X^{(1)}=1\mid Y=1)=\frac{2+1}{9+3},P(X^{(1)}=2\mid Y=1)=\frac{3+1}{9+3},P(X^{(1)}=3\mid Y=1)=\frac{4+1}{9+3}
P(X^{(2)}=S\mid Y=1)=\frac{1+1}{9+3},P(X^{(2)}=M\mid Y=1)=\frac{4+1}{9+3},P(X^{(2)}=L\mid Y=1)=\frac{4+1}{9+3}


P(X^{(1)}=1\mid Y=-1)=\frac{3+1}{6+3},P(X^{(1)}=2\mid Y=-1)=\frac{2+1}{6+3},P(X^{(1)}=3\mid Y=-1)=\frac{1+1}{6+3}
P(X^{(2)}=S\mid Y=-1)=\frac{3+1}{6+3},P(X^{(2)}=M\mid Y=-1)=\frac{2+1}{6+3},P(X^{(2)}=L\mid Y=-1)=\frac{1+1}{6+3}


对于给定的2=(2,S)^T,计算得到:
P(Y=1)P(X^{(1)}=2\mid Y=1)P(X^{(2)}=S\mid Y=1)=\frac{10}{17}\cdot\frac{4}{12}\cdot\frac{2}{12}=\frac{5}{153}=0.0327
P(Y=-1)P(X^{(1)}=2\mid Y=-1)P(X^{(2)}=S\mid Y=-1)=\frac{7}{17}\cdot\frac{3}{9}\cdot\frac{4}{9}=\frac{28}{459}=0.0610
后者最大,所以y=-1


参考1:《统计学习方法》---李航

相关文章

  • 朴素贝叶斯法

    朴素贝叶斯法 朴素贝叶斯法的学习与分类 朴素贝叶斯法的参数估计 朴素贝叶斯实现 高斯朴素贝叶斯实现 使用 skle...

  • 朴素贝叶斯法(NaiveBayes)

    朴素贝叶斯法(Naive Bayes) 朴素贝叶斯法是基于贝叶斯定力和特征条件独立假设的分类方法。 朴素贝叶斯法实...

  • 第五周 - 20180507

    朴素贝叶斯的思路及实现 一、朴素贝叶斯简介 朴素贝叶斯法(Naive Bayes)是基于贝叶斯定理与特征条件独立假...

  • 算法笔记(7)-朴素贝叶斯算法及Python代码实现

    朴素贝叶斯算法有三种类型,分别是贝努利朴素贝叶斯、高斯贝叶斯、多项式朴素贝叶斯。 贝叶斯公式 贝努利朴素贝叶斯 适...

  • 朴素贝叶斯

    朴素贝叶斯法 标签: 统计学习 目录 [TOC] 基本方法   朴素贝叶斯法通过训练数据集学习联合概率分布P(X,...

  • 朴素贝叶斯

    一、朴素贝叶斯法 1.定义: 朴素贝叶斯法 基于(1)贝叶斯定理和(2)特征条件独立假设的分类方法。 2.具体分类...

  • 朴素贝叶斯(NBM)之后验概率最大化的含义 | 统计学习方法

    朴素贝叶斯 - 贝叶斯估计Python复现: 舟晓南:朴素贝叶斯(Bayes)模型python复现 - 贝叶斯估计...

  • 朴素贝叶斯算法介绍及优化

    朴素贝叶斯(Naive Bayes) 贝叶斯公式 朴素贝叶斯算法其实原理很简单,要理解朴素贝叶斯算法我们首先得知道...

  • 统计学习方法——修炼学习笔记4:朴素贝叶斯法

    一、朴素贝叶斯法 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定数据集,首先基于特征条件独立假...

  • Task4

    传统机器学习 一、朴素贝叶斯朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对...

网友评论

    本文标题:朴素贝叶斯法

    本文链接:https://www.haomeiwen.com/subject/togssctx.html