贝叶斯公式:
\[P(A|B)=\frac{P(B|A)P(A)}{P(B)}\]算法
假设事件\(A\)自己包含多种可能性,集\(A=\{A_1,A_2,\cdots,A_n\}\),那么对于集合中任意的\(A_i\),贝叶斯定理表示为:
\[P(A_i|B)=\frac{P(B|A_i)P(A_i)}{\sum_{j}P(B|A_j)P(A_j)}\]函数
- 某 AI 公司招聘工程师,来了8名应聘者,这8我的里,有5我的是985院校毕业的,另外3人不是。
- 面试官拿出一道算法题准备考察他们。根据之前的面试经验,面试官知道:985毕业生作对这道题的几率是80%,非985毕业生作对率只有30%。
- 如今,面试管从8我的里随手指了一我的——小甲,让 TA 出来作题。结果小甲作对了,那么请问,小甲是985院校毕业的几率是多大?
\[\frac{0.8*5/8}{0.8*5/8+0.3*3/8}\]
朴素贝叶斯法假设条件几率分布是条件独立的。即:
\[P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)}|Y=c_k)\\ = \prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)\]学习
条件独立假设等因而说用于分类的特征在类肯定的条件下都是条件独立的。spa
朴素贝叶斯法分类时,对给定的输入\(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_{k}^{ }P(X=x|Y=c_k)P(Y=c_k)}\]it
朴素贝叶斯分类器可表示为:
\[y=f(x)=arg\ \underset{c_k}{max}\ P(Y=c_k)\prod_{j}^{ }P(X^{(j)}=x^{(j)}|Y=c_k)\]class
后验几率最大化,等价于指望风险最小化。lambda
上式,基于训练集\(D\)来估计类先验几率\(P(Y=c_k)\),并为每一个属性估计条件几率\(P(X^{(j)}=x^{(j)}|Y=c_k)\)。统计
令\(D_k\)表示训练集\(D\)中第\(k\)类样本组成的集合,如有充分的独立同分布样本,则可估计出类先验几率为:
\[P(Y=c_k)=\frac{|D_k|}{|D|}\]
令\(D_k^{(j)}\)表示\(D_k\)中的第\(j\)个属性上取值为\(x^{(j)}\)的样本组成的集合,则条件几率为:
\[P(X^{(j)}=x^{(j)}|Y=c_k)=\frac{|D_k^{(j)}|}{|D_k|}\]
\[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}|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)}\]
\(x_i^{(j)}\):是第\(i\)个样本的第\(j\)个特征。
\(a_{jl}\):第\(j\)个特征可能取的第\(l\)个值。
缺点:用极大似然估计可能会出现所要估计的几率值为0的状况,而影响到后验几率的计算,使分类产生偏差。
\[P(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}\]
其中,\(\lambda \geqslant 0\),常取\(\lambda = 1\),此时称为拉普拉斯平滑。\(S_j\)可取第\(j\)个属性可能的取值数。
\[P(Y=c_k)=\frac{\sum_{i=1}^{N} I(y_i=c_k)+\lambda}{N+K \lambda}\]
其中,\(K\)可取训练集\(D\)中可能的类别数。
拉普拉斯平滑避免了因训练集样本不充分而致使几率估值为零的问题,而且在训练集变大时,平滑过程所引入的先验的影响也会逐渐变得可忽略,使得估值渐趋向于实际几率值。
实际中,每每影响一件事的因素有多个。假设,影响\(B\)的因素有\(n\)个,分别是\(b_1,b_2,\cdots, b_n\),则\(P(A|B\))可写为:
\[P(C|b_1,b_2,\cdots,b_n)=\frac{P(C)P(b_1,b_2,\cdots,b_n|C)}{P(b_1,b_2,\cdots,b_n)}\]
根据链式法则,可得:
\[P(b_1,b_2,\cdots,b_n|C)=P(b_1|C)P(b_2|C,b_1)\cdots P(b_n|C,b_1,b_2,\cdots,b_{n-1})\]
若是从\(b_1\)到\(b_n\)这些特征之间,在几率分布上是条件独立的,即每一个特征\(b_i\)与其余特征都不相关。则有:
\[P(C|b_1,b_2,\cdots,b_n)=\frac{1}{Z}P(C)\prod_{i=1}^{n}P(b_i|C)\]
其中,\(Z=P(b_1,b_2,\cdots,b_n)\)。\(C\)是最终的类别(class)。
上式即为朴素贝叶斯分类器的模型函数。
先验几率和条件几率经过在训练样本中间作统计,便可直接得到。
若是简单地将频率当成了几率,实际上默认了“未被观测到”地就是出现几率未0的。这样作显然不合理。
解决思路1:拉普拉斯平滑。