note 2022-08-08 Machine learning

Navie Bayes

模型推导

给定数据集: $\{(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:

  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$$

  • $\lambda = 0$ 时, 极大似然估计
  • $\lambda = 1$ 时, 拉普拉斯平滑(Laplace smoothing), 常取 $\lambda = 1$