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