跳转至

朴素贝叶斯

约 2532 个字 预计阅读时间 17 分钟

贝叶斯概率

我们根据随机重复事件的频率来考察概率,这个是经典或者频率学家关于概率的观点。

考察一个不确定性事件:本世纪末北极冰盖是否会消失,这些事件无法重复多次,因此我们无法像水果盒子那样定义概率。但是,我们通常会有⼀些想法,例如,北极冰盖融化的速度等等。如果我们获得到了新鲜的证据,例如⼈造卫星收集到了⼀些新的修正信息,我们可能就会修正我们对于冰盖融化速度的观点。我们估计冰盖融化速度会影响我们采取的措施,例如我们会努⼒减少温室⽓体的排放。在这样的情况下,我们可能希望能够定量地描述不确定性,并且根据少量新的证据对不确定性进⾏精确的修改,对接下来将要采取的动作进⾏修改,或者对最终的决策进⾏修改。这可以通过⼀种优雅的通⽤的贝叶斯概率观点来实现。

贝叶斯定理通过将观察到的数据融合,来把先验概率转化为后验概率。在观察到数据之前,我们有一些关于参数 \(w\) 的假设,这以先验概率 \(p(w)\) 的形式给出。观测数据 \(\mathcal{D}=\left\{ t_{1},\dots,t_{N} \right\}\) 的效果可以通过条件概率 \(p(\mathcal{D}|w)\) 表达。贝叶斯定理的形式为:

\[ p(w|\mathcal{D} ) = \frac{p(\mathcal{D} |w)p(w)}{p(\mathcal{D}) } \tag{1} \]

它让我们能够通过后验概率 \(p(w|\mathcal{D})\) ,在观测到 \(\mathcal{D}\) 之后估计 \(w\) 的不确定性。

贝叶斯定理右侧的 \(p(\mathcal{D}|w)\) 由观测数据集 \(\mathcal{D}\) 来估计,可以被看成参数向量 \(w\) 的函数,被称为似然函数(likehood function)。它表达了在不同的参数向量 \(w\) 下,观测数据出现的可能性的大小。注意,似然函数不是 \(w\) 的概率分布,并且它关于 \(w\) 的积分并不一定等于 \(1\)

\((1)\) 式的分母是一个归一化常数,确保左侧的后验概率分布是一个合理的概率密度,积分为 \(1\) 实际上,对 \((1)\) 两侧关于 \(w\) 进行积分,我们可以用后验概率分布和似然函数来表达贝叶斯定理的分母

\[ p(\mathcal{D} ) =\int p(\mathcal{D} |w)p(w) \,\mathrm{d}w \]

在贝叶斯观点和频率学家观点中,似然函数 \(p(\mathcal{D}|w)\) 都起着重要的作用。然而,在两种观点中,使用的方式有着本质的不同。在频率学家的观点中,\(w\) 被认为是一个固定的参数,它的值由某种形式的“估计”来确定,这个估计的误差通过考察可能的数据集 \(\mathcal{D}\) 的概率分布来得到。相反,从贝叶斯的观点来看,只有一个数据集 \(\mathcal{D}\) (即实际观测到的数据集),参数的不确定性通过 \(w\) 的概率分布来表达。

贝叶斯决策

贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。

  • 基本思想

    1. 已知类条件概率密度参数表达式和先验概率。
    2. 利用贝叶斯公式转换成后验概率。
    3. 根据后验概率大小进行决策分类。

贝叶斯决策的本质是后验概率最大化

极大似然估计

给定一个概率分布 \(\mathcal{D}\),已知其概率密度函数或概率质量函数为 \(f_{\mathcal{D}}\) ,以及一个分布参数 \(\theta\) ,我们可以从这个分布中抽出一个具有 \(n\) 个值的采样 \(X_{1},X_{2},\dots,X_{n}\) ,利用 \(f_{\mathcal{D}}\) 计算出其似然函数

\[ L(\theta|x_{1},\dots,x_{n})= f_{\theta}(x_{1},\dots,x_{n})=\prod^{n}_{i=1}f(x_i,\theta) \]

\(\mathcal{D}\) 是离散分布,\(f_{\theta}\) 即是参数为 \(\theta\) 时观测到这一采样的概率;若其是连续分布,\(f_{\theta}\) 则为 \(X_{1},X_{2},\dots,X_{n}\) 联合分布的概率密度函数在观测值处的取值。一旦我们获得 \(X_{1},X_{2},\dots,X_{n}\) 我们就能求得一个关于 \(\theta\) 的估计。最大似然估计会须寻找关于 \(\theta\) 的最可能的值(即,在所有可能的 \(\theta\) 取值中,寻找一个值使这个采样的“可能性”最大化)。

\[ L(\hat{\theta}(x_{1},\dots,x_{n}))= \max_{\theta \in \Theta} L(\theta) \]

从数学上我们可以在 \(\theta\) 的所有可能取值中寻找一个值使得似然函数取到最大值。这个使可能性最大的 \(\hat{\theta}\)值即称为 \(\theta\) 的最大似然估计。由定义,最大似然估计是样本的函数。

\(\hat{\theta}\) 称为 \(\theta\) 的极大似然估计,相应统计量 \(\hat{\theta}(X_{1},\dots,X_{n})\) 称为 \(\theta\) 的极大似然估计量 (MLE) ,这里的位置参数 \(\theta\) 可能不止一个参数 \(\theta = (\theta_{1},\theta_{2},\dots,\theta_{k})\)

极大似然估计的求解

  1. \(\ln L(\theta)=l(\theta)\) 称为对数似然函数,利用 \(\frac{\partial l(\theta) }{\partial \theta_{i} } = 0,i=1,2,\dots k\)
  2. \(L(\theta)\) 关于某个 \(\theta _i\) 单调递增(减),\(\theta_{i}\leq(\geq)\hat{\theta}_{i}(x_{1},\dots,x_{n})\) ,此时 \(\hat{\theta}_{i}(x_{1},\dots,x_{n})\) 即为 \(\theta_{i}\) 的极大似然估计值,\(\hat{\theta}_{i}(X_{1},\dots,X_{n})\) 即为 \(\theta_{i}\) 的极大似然估计量
  3. \(\hat{\theta}(X_{1},\dots X_{n})\)\(\theta\) 的极大似然估计量,则 \(g(\theta)\) 的极大似然估计量为 \(g(\hat{\theta}(X_{1},\dots,X_{n}))\)

朴素贝叶斯法

设训练集

\[ T=\left\{ (x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{N},y_{N}) \right\} \]

是由 \(P(X,Y)\) 独立同分布产生。

朴素贝叶斯法通过训练数据集学习联合概率分布 \(P(X,Y)\) 。具体地,学习以下先验概率分布以及条件概率分布,先验概率分布:

\[ P(Y=c_{k}) ,\quad k=1,2,\dots,K \]

朴素贝叶斯法对条件概率做了条件独立性的假设:

\[ \begin{align} P(X=x|Y=c_{k})=P(X^{(1)}&=x^{(1)},\dots,X^{(n)}=x^{(n)}|Y=c_{k}) \\ &= \prod^{n}_{j=1}P(X^{(j)}=x^{(j)}|Y=c_{k}) \end{align} \]

于是学习到联合概率分布 \(P(X,Y)\)

朴素贝叶斯分类时,对给定的输入 \(x\) ,通过学习到的模型计算后验概率分布 \(P(Y=c_{k}|X=x)\) ,将后验概率最大的类作为 \(x\) 的类来输出。

\[ y = \underset{ c_{k} }{ \arg \max }P(Y=c_{k})\prod _{j}P(X^{(j)}=x^{(j)}|Y=c_{k}) \]

朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的,这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率(这就是被称为“朴素(naïve)”的原因)。


朴素贝叶斯法将实例分到后验概率最大的类中,等价于期望风险最小化。证明如下: 选择 \(0\)-\(1\) 损失函数:

\[ L(Y,f(X)) = \left\{\begin{aligned} 1 \quad&Y\neq f(X) \\ 0\quad& Y = f(X) \end{aligned}\right. \]

期望函数:

\[ R_{\exp}(f) = \mathbb{E}[L(Y,f(X))] \]

取条件期望:

\[\begin{align} R_{\exp}(f) &= \mathbb{E}[L(Y,f(X))] = \mathbb{E}_{X} [\mathbb{E}_{Y|X} [L(Y,f(X))]]\\ &=\mathbb{E}\left[ \sum_{k=1}^{K}[L(Y=c_{k},f(X)){P(Y=c_{k}|X)}] \right] \end{align} \]

在上式中对 \(x\) 取极小化处理

\[ \begin{align} &\underset{y\in \mathcal{Y} }{\arg\min}\sum_{k=1}^{K}L(c_{k},y)P(y=c_{k}|X=x) \\ \implies&\underset{y\in \mathcal{Y} }{\arg\min} \sum_{k=1}^{K} I({y\neq c_{k}})P(y=c_{k}|X=x) \\ \implies&\underset{y\in \mathcal{Y} }{\arg\min}\sum_{j\neq k}^{K}P(y=c_{k}|X=x) \\ \implies&\underset{y\in \mathcal{Y} }{\arg\min} (1-P(y=c_{k}|X=x)) \\ \implies&\underset{y\in \mathcal{Y} }{\arg\max } \ P(y=c_{k}|X=x) \end{align} \]

讲解第二步到第三步的推导,假定标签为 \(c_{1}\) (可以是任意的)由于我们定义的是 \(0\)-\(1\) 损失函数,所以含有相同标签的项被消除了,只剩下标签不同的项,这样我们将损失函数去掉了,只剩下概率分布,我们把因损失函数而消除掉的概率分布补上,所有概率累加起来结果得 \(1\),我们就得到了第四步。


应用极大似然估计法估计相应概率,先验概率 \(P(Y=c_{k})\) 的极大似然估计是

\[ P(Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k}) }{N} \]

设第 \(j\) 个特征 \(x^{(j)}\) 可能取值的集合为 \(\left\{ a_{j1} ,a_{j_{2}},\dots,a_{jS_{j}} \right\}\),条件概率 \(P(X^{(j)}=a_{jl}|Y=c_{k})\) 的极大似然估计是

\[ P(X^{(j)}=a_{jl}|Y=c_{k}) = \frac{\sum_{i=1}^{N} I(x^{(j)}_{i}=a_{jl},y_{i}=c_{k})}{\sum_{i=1}^{N}I(y_{i}=c_{k}) } \]

朴素贝叶斯算法

输入:训练数据 \(T=\left\{ (x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{N},y_{N}) \right\}\)

(1) 计算先验概率及条件概率

\[ P(Y=c_{k}) = \frac{\sum_{i=1}^{N}I(y_{i}=c_{k}) }{N} \]
\[ 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}) } \]

(2) 对于给定的实例 \(x\) ,计算

\[ P(Y=c_{k}) \prod^{n}_{j=1}P(X^{(j)}=x^{(i)}|Y=c_{k}) \]

(3) 确定实例 \(x\) 的类

\[ y = \underset{ c_{k} }{ \arg \max }P(Y=c_{k})\prod _{j}P(X^{(j)}=x^{(j)}|Y=c_{k}) \]

用极大似然估计可能会出现所要估计的概率值为 \(0\) 的情况,这会影响到后验概率的计算结果,使分类产生偏差,解决这一问题的方法使采用贝叶斯估计:

\[ P_{\lambda}(X^{(j)} = a_{jl}|Y=c_{k})= \frac{\sum_{i=1}^{N}I(x^{(j)}_{i}=a_{jl},y_{i}=c_{k})+\lambda }{\sum_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda } \]

式中 \(\lambda \geq 0\) ,等价于在随机变量各个取值的频数上赋予一个整数 \(\lambda > 0\) ,常取 \(\lambda = 1\) ,这时称为拉普拉斯平滑