logo

Navie Bayes

wangzf / 2022-08-08


目录

模型推导

给定数据集: $\{(x_i, y_i)\}$, 其中: $i = 1, 2, \ldots, N$, $x_i \in R^p$, $y_i \in \{c_1, c_2, \ldots, c_K\}$

假设

根据条件概率的条件独立性假设:

$$\begin{eqnarray} P(x|y=c_k) & & {} = P(x_{ij}|y_i=c_k) \nonumber \\ & & {} = \prod_{j=1}^{p}P(x_{ij}|y_i=c_k) \nonumber \end{eqnarray}$$

根据Bayesian定理, 求解给预测变量 $x$ 下, 目标变量 $y=c_k$ 的后验概率:

$$\begin{eqnarray} P(y=c_k|x) & & {} = \frac{P(x, y = c_k)}{P(x)} \nonumber \\ & & {} = \frac{P(x|y=c_k)P(y=c_k)}{\sum_{k}P(x|y=c_k)P(Y=c_k)} \nonumber \\ & & {} = \frac{P(y_i=c_k)\prod_{j}P(x_{ij}|y_i=c_k)}{\sum_k P(y_i=c_k)\prod_j P(x_{ij}|y_i=c_k)} \nonumber \end{eqnarray}$$

朴素贝叶斯分类器:

$$\begin{eqnarray} y_i=f(x_i) & & {} = \arg\underset{c_k}{\max} P(y=c_k|x_i) \nonumber \\ & & {} = \arg\underset{c_k}{\max} P(y_i=c_k)\prod_{j}P(x_{ij}|y_i=c_k) \nonumber \end{eqnarray}$$

模型学习方法

极大似然估计

朴素贝叶斯分类器:

$$\begin{eqnarray} y_i=f(x_i) & & {} = \arg\underset{c_k}{\max} P(y_i=c_k|x_i) \nonumber \\ & & {} = \arg\underset{c_k}{\max} P(y_i=c_k)\prod_{j}P(x_{ij}|y_i=c_k) \nonumber \end{eqnarray}$$

估计 $P(y_i=c_k)$:

$$P(y_i=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N}$$

估计 $P(x_{ij}|y_i=c_k)$:

假设第$j$个特征$x_{ij}$的取值集合为 $\{a_{j1}, a_{j2}, \ldots, a_{jS_j}\}$

$$P(x_{ij} = a_{jl}|y_i=c_k)=\frac{\sum_{i=1}^{N}I(x_{ij} = a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)}, j= 1, 2, \ldots, p; l = 1, 2, \ldots, S_j$$

算法:

给定训练数据集 $T = \{(x_i, y_i), i= 1, 2, \ldots, N\}$

其中:

Note:

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

$$P(y_i=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N}, i = 1, 2, \ldots, N, k = 1, 2, \ldots, K$$ $$P(x_{ij} = a_{jl}|y_i=c_k)=\frac{\sum_{i=1}^{N}I(x_{ij} = a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)}, j= 1, 2, \ldots, p; l = 1, 2, \ldots, S_j$$

  1. 对于给定的样本 $(x_{i1}, x_{i2}, \ldots, x_{ip})$, 计算

$$P(y_i=c_k)\prod_{j=1}^{p}P(x_{ij}=a_{jl}|y_i=c_k), k = 1, 2, \ldots, K$$

  1. 确定样本 $x_i$ 的类

$$y_i = \arg\underset{c_k}{\max}P(y_i=c_k)\prod_{j=1}^{p}P(x_{ij}=a_{jl}|y_i=c_k)$$

贝叶斯估计

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

估计先验概率:

$$P_\lambda(y_i=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)+\lambda}{N+K\lambda}, i = 1, 2, \ldots, N, k = 1, 2, \ldots, K$$

估计条件概率:

$$P_{\lambda}(x_{ij} = a_{jl}|y_i=c_k)=\frac{\sum_{i=1}^{N}I(x_{ij} = a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^{N}I(y_i=c_k)+S_j\lambda}, j= 1, 2, \ldots, p; l = 1, 2, \ldots, S_j;\lambda\geq 0$$