Naive Bayes (NB)


Naive Bayes (NB) 理论

简介:一种基于贝叶斯定理和特征条件独立假设的分类方法。步骤是基于“特征条件独立假设”学习输入/输出的联合概率分布--按此模型对输入,利用贝叶斯定理求出后验概率最大的输出y

优缺点:实现简单,预测效率高。能用于大型数据库;缺点是要知道先验概率


 

1. 贝叶斯理论

贝叶斯定理本身是个很久远(1763出现)的统计方法。这里顺便多记录一点Bayes的知识。

 

a. 条件概率

条件概率$P(A|B)$表示:在B事件发生的前提下,A事件发生的概率

b. 贝叶斯定理

A, B均发生的概率为$P(A\cap B)$, 可以通过两种形式表示,分别为

\[P(A\cap B)=P(A|B)P(B) \]

\[P(A\cap B)=P(B|A)P(A) \]

因此

\[ P(A|B)P(B)=P(B|A)P(A) \]

最终得到条件概率的计算公式

\[ P(A|B)=\frac{P(B|A)P(A)}{P(B)}  (1)\]

c. 全概率公式

如果样本空间$S=A_1+A_2+...+A_n$, 那么

\[P(B)=P(B\cap A_1)+P(B\cap A_2)+...+P(B\cap A_n)\]

我们又知道:

\[P(B\cap A_i)=P(B|A_i)P(A_i)\]

所以

\[P(B)=P(P(B|A_1)P(A_1)+P(B|A_2)P(A_2)+...+P(B|A_n)P(A_n)\]

代入(1)可得全概率公式:

\[P(A|B)=\frac{P(B|A)P(A)}{P(B|A_1)P(A_1)+P(B|A_2)P(A_2)+...+P(B|A_n)P(A_n)}  (2)\]

也即:

\[P(A|B)=\frac{P(B|A)P(A)}{\sum_{i=1}^n P(B|A_i)P(A_i)}  (3)\]

$P(A)$:先验概率,即在B事件发生之前,我们对A事件的预估判断;

$P(A|B)$:后验概率,即在B事件发生之后,我们对A事件概率的重新判断;

\[ \frac{P(B|A)}{\sum_{i=1}^n P(B|A_i)P(A_i)}  (4)\]

可能性函数,使得预估判断接近真实概率

因此我们可以写出“先验概率”和“后验概率”的关系:

\[ 后验概率=先验概率\times 可能性函数\]

 


贝叶斯定理的一个经典应用:

已知某种疾病的发病率是0.1%,即1000人中会有1个人得病。现有一种试剂可以检验患者是否得病,它的准确率是99%,即在患者确实得病的情况下,它有99%的可能呈现阳性。它的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。现有一个病人的检验结果为阳性,请问他确实得病的可能性有多大?(假阳性问题)

解释:假定事件A表示“得病”,那么$P(A)=0.001$就是“先验概率”,就是我们在没有给病人做试验之前预计的发病概率;假定事件B表示“检测结果为阳性”;我们的计算目标是$P(A|B)$,就是“检测结果为阳性”的前提下,患者“得病”的概率。

根据全概率概率公式(2)可以写出:

\[P(A|B)=P(A)\frac{P(B|A)}{P(B|A)P(A)+P(B|{\overline A})P({\overline A})}\]

代入数据

\[P(A|B)=0.001\times\frac{0.99}{0.99\times0.001+0.05\times0.999}\approx 0.019 \]

也就是说,即便准确率为99%的诊断下,患者为阳性,那么他依然有98.1%的概率没有患病。这个原因在于误报率5%过高


 

2. 朴素贝叶斯理论

2.1后验概率最大化

朴素贝叶斯法对条件概率分布作了:条件独立假设。条件独立假设是说,用于分类的特征在类确定的条件下都是独立的。具体而言,条件独立假设是指:

\[P(X=x|Y=c_k)=P(X_{(1)}=x_{1},...,X_{n}=x_{n}|Y=c_k)=\prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)  (5)\]

根据朴素贝叶斯分类时,我们类比贝叶斯方法,计算后验概率,并将其最大的类作为x的输出

\[  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)}  (6)\]

将(5)代入(6)可得

\[P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)}{\sum_k P(Y=c_k) \prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)}\quad k=1,2,3..K\]

上式是朴素贝叶斯分类的基本公式,而朴素贝叶斯分类器可以表示为:

\[f(x)=arg\,\underset{c_k}{max} \frac{P(Y=c_k)\prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)}{\sum_k P(Y=c_k) \prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)}\]

由于分母对所有$c_k$都相同,所以

\[f(x)=arg\,\underset{c_k}{max} P(Y=c_k)\prod_{j=1}^n P(X_{j}=x_{j}|Y=c_k)\]

2.2后验概率最大化的含义

我们选择0-1损失函数:

\[L(Y,f(X))=\begin{cases}1& \text{Y\neq f(X)}\\1& \text{$Y=f(x)$}\end{cases}\]

其中$f(x)$是分类决策函数,此时期望风险函数为:

\[R_{exp}(f)=E[L(Y,f(X))]\]

\[R_{exp}(f)=E_x \sum_{k=1}^{K}[L(c_k,f(X))]P(c_k|X)\]

为了让期望风险能够最小化,我们可以对$X=x$逐渐最小化:

\[f(x)=arg\,\underset{y\in Y}{min} \sum_{k=1}^K L(c_k,y)P(c_k|X=x)\]

\[f(x)=arg\,\underset{y\in Y}{min} \sum_{k=1}^K P(y\neq c_k|X=x)\]

\[f(x)=arg\,\underset{y\in Y}{min} (1-P(y\neq c_k|X=x))\]

\[f(x)=arg\,\underset{y\in Y}{min} P(y=c_k|X=x)\]

最后我们得到:

\[期望风险最小化=后验概率最大化准则\]

2.3如何学习先验概率和可能性函数

为了得到贝叶斯分类器,还需要知道先验概率$P(Y=c_k)$和可能性函数$P(X^{j}=x^{j}|Y=c_k)$.有两种方法可以用来做估计:

a. 极大似然估计

\[P(Y=c_k)=\frac{\sum_{i=1}^{N} I(y_i=c_k)}{N},\,k=1,2,...,K\]

\[P(X^{(j)}=a_{j\,l}|Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)=a_{j\,l}},\,y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)}\]

b. 贝叶斯估计

弥补了极大似然估计可能出现估计概率值为0的情况

\[P(Y=c_k)=\frac{\sum_{i=1}^{N} I(y_i=c_k)+\lambda}{N+K\lambda},\,k=1,2,...,K\]

\[P(X^{(j)}=a_{j\,l}|Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)=a_{j\,l}},\,y_i=c_k)+\lambda}{\sum_{i=1}^N I(y_i=c_k)+S_j\lambda}\]

其中$\lambda\ge 0$, 当$lambda=0$时,就是极大似然估计;常取$lambda=1$,这时称为Laplace smoothing;显然$P(X^{(j)}=a_{j\,l}|Y=c_k)>0$

 


 

Naive Bayes (NB) 实践 

ing

 

2017-05-04 

posted @ 2017-05-03 21:44  绿宝宝怪  阅读(290)  评论(0编辑  收藏  举报
#site_nav_under,#ad_under_post_holder,#under_post_news,#google_ad_c2,#under_post_kb{ width:0; height:0; display:none; overflow:hidden; }