基于贝叶斯分类器的相关基础知识分析

贝叶斯分类器

基础知识

先验概率 \[ P(y=y_i)\\ \sum_{i=1}^c P(y_i)=1 \]

后验概率

给定观测向量 \(x\) ,某个特定类别的概率 \(P(y|x)\)

贝叶斯定理 \[ \begin{align} P(y|x)&=P(x|y)P(y)\\ &=\frac{P(x|y)P(y)}{P(x)}\\ &=\frac{p(x|y)P(y)}{\sum_ip(x|y_i)p(y_i)} \end{align} \] 最大后验概率\(MAP\) 的类别作为预测结果 \[ y^*=arg\ maxP(y_i|x)\\ \begin{cases} y_1&if\quad P(y_1|x)>P(y_2|x)\\ y_2&if\quad P(y_2|x)>P(y_1|x) \end{cases} \]

朴素贝叶斯

基本方法

条件独立性假设

假设 \(x\) 之间相互独立,则 \[ \begin{align} P(X=x|Y=c_k)&=P(X^{(1)}=x^{(1)},\ldots ,X^{(n)}=x^{n}|Y=c_k)\\ &=\prod_{i=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \end{align} \] 将上式子代入贝叶斯定理 \[ P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod _jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^{(j)}=x^{j}|Y=c_k)} \] 考虑到对于所有的 \(c_k\) 分母都相同

因此贝叶斯分类器目标函数是 \[ y=arg\ \underset{c_k}{max}P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k) \] 应用极大似然估计法求相应的概率:

先验概率 \(P(Y=c_k)\) 的极大似然估计是: \[ P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N},k=1,2,\ldots,K \] 条件概率的极大似然估计: \[ P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N},k=1,2,3,\ldots,K\\ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)}\\ j=1,2,\ldots,n;l=1,2,\ldots,S_j;k=1,2,\ldots,K \]

说明

  • \(N\) 是样本的总数
  • \(I\) 是指示函数,当条件为真则取值为 \(1\) ,否则为 \(0\)
  • \(n\) 表示样本的数量
  • \(S_j\) 表示第 \(j\) 个特征可能取值的数量
  • \(K\) 表示类别的总数
  • \(x_i^{j}\) 表示第 \(i\) 个样本的第 \(j\) 个特征的值
  • \(y_i\) 表示第 \(i\) 个样本的类别标签

朴素贝叶斯法的参数估计

输入

  • 训练数据集

\[ T={(x_1,y_1),(x_2,y_2),\ldots,(x_N,y_N)} \]

\(x_i^{(j)}\)\(i\) 个样本的第 \(j\) 个特征 \[ x_i=(x_i^{(1)},x_i^{(2)},\ldots,x_i^{(n)}) \] \(a_{jl}\)\(j\) 个特征可能取的第 \(l\) 个值 \[ x_i^{(j)}\in {a_{j1},a_{j2},\ldots,a_{(jS_i)}} \]

  • 输出

\(x\) 的分类

\(y_i\in {c_1,c_2,\ldots,c_K}\)

步骤

  1. 计算先验概率和条件概率

\[ P(y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N},k=1,2,\ldots,K\\ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)}\\ j=1,2,\ldots,n;l=1,2,\ldots,S_j;k=1,2,\ldots,K \]

  1. 对于示例计算

对于给定的示例 \(x=\left(x_i^{(1)},x_i^{(2)},\ldots,x_i^{(n)}\right)^T\)

计算 \[ P(Y=c_k)\prod_{j=1}^nP(X^{(j)}|Y=c_k),k=1,2,\ldots,K \]

  1. 确定 \(x\) 的类别

\[ y=arg\ \underset {c_k}{max}P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \]

应用示例

在下面这张表格中,在某些情况下我们是否应该打网球。

给定在某特定天气参数情况下,判断我们是否应该打网球

求不同特征维度下的条件概率

例如在outlook维度下, \[ P(X_{sun}^{out}|Y=yes)=\frac 29\\ P(X_{over}^{out}|Y=yes)=\frac 49\\ \ldots\ldots\\ P(X_{sun}^{out}|Y=no)=\frac 35\\ \ldots\ldots \]

image-20240308191232871

对于 \(x=(sunny,how,normal,weak)\)\[ y^*=arg \underset{y\in {yes,no}}{max}P(y)P(sunny|y)P(hot|y)P(normal|y)P(weak|y) \]\(y=no\) 时,代入进行计算得到 \(0.0141\)

\(y=yes\) 时,带入进行计算得到 \(0.0069\) ,因此选择 \(no\)

平滑处理

考虑到极大似然估计可能会出现所要估计的概率值为0的情况,这时为影响到后续概率的计算结果,使分类产生偏差

解决:采用拉普拉斯平滑 \[ \hat P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)},y_i=c_k)+1}{\sum_{i=1}^NI(y_i=c_k)+{S_j}}\\ \hat P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+{1}}{N+{K}} \] image-20240308193404176

连续特征处理

假定数据在给定类别下遵循一定的分布,例如假设数据遵循高斯分布,称为高斯朴素贝叶斯分类器

通过这种假设,根据连续特征的实际观测计算出给定类别下该值的概率密度,进而用于计算后验概率,做出分类决策