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\}$
假设
- 训练数据集
$\{(x_i, y_i)\}, i = 1, 2, \ldots, N$
由$P(x, y)$
独立同分布产生 $P(x, y)$
: 是$x$
和$y$
的联合概率分布$P(y = c_k), i = 1, 2, \ldots, K$
: 是目标变量$y$
的先验分布$P(x|y=c_k)$
: 是给定目标变量$y=c_k$
下, 预测变量$x$
条件分布
根据条件概率的条件独立性假设:
$$\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\}$
其中:
$x_i = (x_{i1}, x_{i2}, \ldots, x_{ip})$
$x_{ij}$
是第$i$
个样本的第$j$
个 特征$x_{ij}\in \{a_{j1}, a_{j2}, \ldots, a_{jS_j}\}$
,$a_{jl}, l=1, 2, \ldots, S_j$
是第$j$
个特征可能取的第$l$
个值$y\in \{c_1, c_2, \ldots, c_k\}$
Note:
- 计算先验概率及条件概率
$$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$$
- 对于给定的样本
$(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$$
- 确定样本
$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$$
- 当
$\lambda = 0$
时, 极大似然估计 - 当
$\lambda = 1$
时, 拉普拉斯平滑(Laplace smoothing), 常取$\lambda = 1$