周志华《机器学习》(西瓜书) —— 学习笔记:第7章 贝叶斯分类器
文章目录
7.0 学习导图
7.1 贝叶斯决策论
假设有 NNN 种可能的类别标记,即 Y={c1,c2,…,cN}\mathcal{Y}=\left\{c_{1}, c_{2}, \ldots, c_{N}\right\}Y={c1,c2,…,cN},λij\lambda_{i j}λij 是将一个真实标记为 cjc_jcj 的样本误分类为 cic_ici 所产生的损失,基于后验概率 P(ci∣x)P\left(c_{i} | \boldsymbol{x}\right)P(ci∣x) 可获得将样本 x\boldsymbol{x}x 分类为 cic_ici 所产生的期望损失,即样本 x\boldsymbol{x}x 的期望风险为
(7.1)R(ci∣x)=∑j=1NλijP(cj∣x) R\left(c_{i} | \boldsymbol{x}\right)=\sum_{j=1}^{N} \lambda_{i j} P\left(c_{j} | \boldsymbol{x}\right)\tag{7.1} R(ci∣x)=j=1∑NλijP(cj∣x)(7.1)
我们的任务是寻找一个判定准则 h:X↦Yh : \mathcal{X} \mapsto \mathcal{Y}h:X↦Y 以最小化总体风险
(7.2)R(h)=Ex[R(h(x)∣x)] R(h)=\mathbb{E}_{\boldsymbol{x}}[R(h(\boldsymbol{x}) | \boldsymbol{x})]\tag{7.2} R(h)=Ex[R(h(x)∣x)](7.2)
贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个使条件风险 R(c∣x)R(c | \boldsymbol{x})R(c∣x) 最小的类别标记,即
(7.3)h∗(x)=argminc∈YR(c∣x) h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \min } R(c | \boldsymbol{x})\tag{7.3} h∗(x)=c∈YargminR(c∣x)(7.3)
h∗h^*h∗ 称为贝叶斯最优分类器,与之对应的总体风险 R(h∗)R\left(h^{*}\right)R(h∗) 被称为贝叶斯风险, 1−R(h∗)1-R\left(h^{*}\right)1−R(h∗) 反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
对误判损失 λij\lambda_{i j}λij ,有
(7.4)λij={0, if i=j1, otherwise \lambda_{i j}=\left\{\begin{array}{ll}{0,} & {\text { if } i=j} \\ {1,} & {\text { otherwise }}\end{array}\right.\tag{7.4} λij={0,1, if i=j otherwise (7.4)
条件风险
(7.5)R(c∣x)=1−P(c∣x) R(c | \boldsymbol{x})=1-P(c | \boldsymbol{x})\tag{7.5} R(c∣x)=1−P(c∣x)(7.5)
贝叶斯最优分类器
(7.6)h∗(x)=argmaxc∈YP(c∣x) h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \max } P(c | \boldsymbol{x})\tag{7.6} h∗(x)=c∈YargmaxP(c∣x)(7.6)
求后验概率 P(c∣x)P(c | \boldsymbol{x})P(c∣x) 的方法:
- “判别式模式”:给定 x\boldsymbol{x}x 直接建模 P(c∣x)P(c | \boldsymbol{x})P(c∣x) ,预测 ccc
- “生成式模式”:先对联合概率 P(x,c)P(\boldsymbol{x}, c)P(x,c) 建模,由此获得 P(c∣x)P(c | \boldsymbol{x})P(c∣x)
对生成式模型
(7.7)P(c∣x)=P(x,c)P(x) P(c | \boldsymbol{x})=\frac{P(\boldsymbol{x}, c)}{P(\boldsymbol{x})}\tag{7.7} P(c∣x)=P(x)P(x,c)(7.7)
通过贝叶斯定理变换
(7.8)P(c∣x)=P(c)P(x∣c)P(x) P(c | \boldsymbol{x})=\frac{P(c) P(\boldsymbol{x} | c)}{P(\boldsymbol{x})}\tag{7.8} P(c∣x)=P(x)P(c)P(x∣c)(7.8)
P(c)P(c)P(c) :类“先验”概率
P(x∣c)P(\boldsymbol{x} | c)P(x∣c) :样本 x\boldsymbol{x}x 相对于类标记 ccc 的类条件概率,或称为“似然”
P(x)P(\boldsymbol{x})P(x) :用于归一化的“证据”因子
P(x)P(\boldsymbol{x})P(x) 和 P(c)P(c)P(c) 苛求,如何求 P(x∣c)P(\boldsymbol{x} | c)P(x∣c) ?
7.2 极大似然估计
估计类条件概率的一种常用策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。具体的,记关于类别 ccc 的类条件概率为 P(x∣c)P(\boldsymbol{x}|c)P(x∣c) ,假设 P(x∣c)P(\boldsymbol{x}|c)P(x∣c) 具有确定的形式,并且被参数向量 θc\boldsymbol{\theta}_cθc 唯一确定,则我们的任务就是根据训练集 DDD 估计参数向量 θc\boldsymbol{\theta}_cθc 。我们将 P(x∣c)P(\boldsymbol{x}|c)P(x∣c) 记成 P(x∣θc)P(\boldsymbol{x}|\boldsymbol{\theta}_c)P(x∣θc) ,利用极大似然估计法求 θc\boldsymbol{\theta}_cθc 。
令 DcD_cDc 表示训练集 DDD 中第 ccc 类样本组成的集合,假设这些样本是独立同分布的,则参数 θc\boldsymbol{\theta}_cθc 对于数据集 DcD_cDc 的似然是
(7.9)P(Dc∣θc)=∏x∈DcP(x∣θc) P\left(D_{c} | \boldsymbol{\theta}_{c}\right)=\prod_{\boldsymbol{x} \in D_{c}} P\left(\boldsymbol{x} | \boldsymbol{\theta}_{c}\right)\tag{7.9} P(Dc∣θc)=x∈Dc∏P(x∣θc)(7.9)
对 θc\boldsymbol{\theta}_cθc 进行极大似然估计,就是去寻找能最大化似然 P(Dc∣θc)P(D_{c} | \boldsymbol{\theta}_{c})P(Dc∣θc) 的参数值 θ^c\hat{\boldsymbol{\theta}}_{c}θ^c 。直观上看,极大似然估计是试图在 θc\boldsymbol{\theta}_{c}θc 所有可能的取值中,找到一个能使数据出现的“可能性”最大的值。
式(7.9)中的连乘操作易造成下溢,通常使用对数似然
(7.10)LL(θc)=logP(Dc∣θc)=∑x∈DclogP(x∣θc) \begin{aligned} L L\left(\boldsymbol{\theta}_{c}\right) &=\log P\left(D_{c} | \boldsymbol{\theta}_{c}\right) \\ \\&=\sum_{\boldsymbol{x} \in D_{c}} \log P\left(\boldsymbol{x} | \boldsymbol{\theta}_{c}\right) \end{aligned}\tag{7.10} LL(θc)=logP(Dc∣θc)=x∈Dc∑logP(x∣θc)(7.10)
此时参数 θc\boldsymbol{\theta}_{c}θc 的极大似然估计 θ^c\hat{\boldsymbol{\theta}}_{c}θ^c 为
(7.11)θ^c=argmaxθcLL(θc) \hat{\boldsymbol{\theta}}_{c}=\underset{\boldsymbol{\theta}_{c}}{\arg \max } L L\left(\boldsymbol{\theta}_{c}\right)\tag{7.11} θ^c=θcargmaxLL(θc)(7.11)
例如,在连续属性情形下,假设概率密度函数 p(x∣c)∼N(μc,σc2)p(\boldsymbol{x} | c) \sim \mathcal{N}\left(\boldsymbol{\mu}_{c}, \boldsymbol{\sigma}_{c}^{2}\right)p(x∣c)∼N(μc,σc2) ,则参数 μc\boldsymbol{\mu}_{c}μc 和 σc2\boldsymbol{\sigma}_{c}^{2}σc2 的极大似然估计为
(7.12)μ^c=1∣Dc∣∑x∈Dcx \hat{\boldsymbol{\mu}}_{c}=\frac{1}{\left|D_{c}\right|} \sum_{\boldsymbol{x} \in D_{c}} \boldsymbol{x}\tag{7.12} μ^c=∣Dc∣1x∈Dc∑x(7.12)
(7.13)σ^c2=1∣Dc∣∑x∈Dc(x−μ^c)(x−μ^c)T \hat{\boldsymbol{\sigma}}_{c}^{2}=\frac{1}{\left|D_{c}\right|} \sum_{\boldsymbol{x} \in D_{c}}\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)^{\mathrm{T}}\tag{7.13} σ^c2=∣Dc∣1x∈Dc∑(x−μ^c)(x−μ^c)T(7.13)
也就是说,通过极大似然法得到的正态分布均值就是样本均值,方差就是 (x−μ^c)(x−μ^c)T\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)^{\mathrm{T}}(x−μ^c)(x−μ^c)T 的均值。
这种参数化方法估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。在现实应用中,欲做出能较好地接近潜在真实分布的假设,往往需在一定程度上利用关于应用任务本身的经验知识,否则若仅凭“猜测”来假设概率分布形式,很可能产生误导性的结果。
以下为式(7.12)和式(7.13)的推导
p(x∣c)∼N(μc,σc2)p(\boldsymbol{x} | c) \sim \mathcal{N}\left(\boldsymbol{\mu}_{c}, \boldsymbol{\sigma}_{c}^{2}\right)p(x∣c)∼N(μc,σc2) 这里, μc\boldsymbol{\mu}_{c}μc 是一个 ddd 维向量, σc2\boldsymbol{\sigma}_{c}^{2}σc2 是一个 d×d{d} \times {d}d×d 对称正定矩阵,这里将其设为 Σc\boldsymbol{\Sigma}_{c}Σc 则
LL(θc)=logP(Dc∣θc)=∑x∈DclogP(x∣θc)=∑x∈Dclog(1(2π)ddet(Σc)e(−12(x−μc)TΣc−1(x−μc)))=∑x∈Dc(−log((2π)d)−log(det(Σc))−12(x−μc)TΣc−1(x−μc)) \begin{aligned} L L\left(\boldsymbol{\theta}_{c}\right) &=\log P\left(D_{c} | \boldsymbol{\theta}_{c}\right) \\ \\ &=\sum_{\boldsymbol{x} \in D_{c}} \log P\left(\boldsymbol{x} | \boldsymbol{\theta}_{c}\right) \\ \\ &=\sum_{\boldsymbol{x} \in D_{c}} \log (\frac{1}{\sqrt{(2 \pi)^{d} \operatorname{det}(\boldsymbol{\Sigma_{c}})}} e^{(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu_{c}})^{\mathrm{T}} \boldsymbol{\Sigma_{c}}^{-1}(\boldsymbol{x}-\boldsymbol{\mu_{c}}))}) \\ \\ &=\sum_{\boldsymbol{x} \in D_{c}} (-\log (\sqrt{(2 \pi)^{d}})-\log (\sqrt{\operatorname{det}(\boldsymbol{\Sigma_{c}})})-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu_{c}})^{\mathrm{T}} \boldsymbol{\Sigma_{c}}^{-1}(\boldsymbol{x}-\boldsymbol{\mu_{c}}))\end{aligned} LL(θc)=logP(Dc∣θc)=x∈Dc∑logP(x∣θc)=x∈Dc∑log((2π)ddet(Σc)1e(−21(x−μc)TΣc−1(x−μc)))=x∈Dc∑(−log((2π)d 1771f )−log(det(Σc))−21(x−μc)TΣc−1(x−μc))
令 LL(θc)L L\left(\boldsymbol{\theta}_{c}\right)LL(θc) 对 μc\boldsymbol{\mu}_{c}μc 和 Σc\boldsymbol{\Sigma}_{c}Σc 的偏导为 000
∂LL(θc)∂μc=0∂LL(θc)∂Σc=0 \begin{aligned}{\frac{\partial L L\left(\boldsymbol{\theta}_{c}\right)}{\partial \boldsymbol{\mu}_{c}}=0} \\ \\ {\frac{\partial L L\left(\boldsymbol{\theta}_{c}\right)}{\partial \boldsymbol{\Sigma}_{c}}=0}\end{aligned} ∂μc∂LL(θc)=0∂Σc∂LL(θc)=0
具体的,对 μc\boldsymbol{\mu}_{c}μc
∂LL(θc)∂μc=∂∑x∈Dc(−log(2π)d−logdet(Σc)−12(x−μ)TΣc−1(x−μ))∂μc=∂∑x∈Dc(−12(x−μ)TΣc−1(x−μ))∂μc=−∑x∈DcΣc−1(x−μc)=−Σc−1∑x∈Dc(x−μc)=0 \begin{aligned} \frac{\partial L L\left(\boldsymbol{\theta}_{c}\right)}{\partial \boldsymbol{\mu}_{c}}&=\frac{\partial \sum_{\boldsymbol{x} \in D_{c}}\left(-\log \sqrt{(2 \pi)^{d}}-\log \sqrt{\operatorname{det}\left(\boldsymbol{\Sigma}_{c}\right)}-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}} \boldsymbol{\Sigma}_{c}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right)}{\partial \boldsymbol{\mu}_{c}} \\ \\ &=\frac{\partial \sum_{\boldsymbol{x} \in D_{c}}\left(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}} \boldsymbol{\Sigma}_{c}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right)}{\partial \boldsymbol{\mu}_{c}} \\ \\ &=-\sum_{\boldsymbol{x} \in D_{c}} \boldsymbol{\Sigma}_{c}^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_{c}) \\ \\ &=-\boldsymbol{\Sigma}_{c}^{-1} \sum_{\boldsymbol{x} \in D_{c}}(\boldsymbol{x}-\boldsymbol{\mu}_{c}) \\ \\ &=0 \end{aligned} ∂μc∂LL(θc)=∂μc∂∑x∈Dc(−log(2π)d−logdet(Σc)−21(x−μ)TΣc−1(x−μ))=∂μc∂∑x∈Dc(−21(x−μ)TΣc−1(x−μ))=−x∈Dc∑Σc−1(x−μc)=−Σc−1x∈Dc∑(x−μc)=0
故有
μ^c=1∣Dc∣∑x∈Dcx \hat{\boldsymbol{\mu}}_{c}=\frac{1}{\left|D_{c}\right|} \sum_{\boldsymbol{x} \in D_{c}} \boldsymbol{x} μ^c=∣Dc∣1x∈Dc∑x
对 Σc\boldsymbol{\Sigma}_{c}Σc
∂LL(θc)∂Σc=∂∑x∈Dc(−log(2π)d−logdet(Σc)−12(x−μ)TΣc−1(x−μ))∂Σc=∂∑x∈Dc(−logdet(Σc)−12(x−μ)TΣc−1(x−μ))∂Σc=−∑x∈Dc(1det(Σc)121det(Σc)3det(Σc)Σc−1+12(x−μ)(x−μ)T(−1)Σc−1Σc−1)=−12∑x∈Dc(Σc−1−(x−μ)(x−μ)TΣc−1Σc−1)=−12Σc−1Σc−1∑x∈Dc(Σc−(x−μ)(x−μ)T)=0 \begin{aligned} \frac{\partial L L\left(\boldsymbol{\theta}_{c}\right)}{\partial \boldsymbol{\Sigma}_{c}}&=\frac{\partial \sum_{\boldsymbol{x} \in D_{c}}\left(-\log \sqrt{(2 \pi)^{d}}-\log \sqrt{\operatorname{det}\left(\boldsymbol{\Sigma}_{c}\right)}-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}} \boldsymbol{\Sigma}_{c}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right)}{\partial \boldsymbol{\Sigma}_{c}} \\ \\ &=\frac{\partial \sum_{\boldsymbol{x} \in D_{c}}\left(-\log \sqrt{\operatorname{det}\left(\boldsymbol{\Sigma}_{c}\right)}-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}} \boldsymbol{\Sigma}_{c}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right)}{\partial \boldsymbol{\Sigma}_{c}} \\ \\ &=-\sum_{\boldsymbol{x} \in D_{c}}\left(\frac{1}{\sqrt{\operatorname{det}\left(\boldsymbol{\Sigma}_{c}\right)}} \frac{1}{2} \frac{1}{\sqrt{\operatorname{det}(\boldsymbol{\Sigma}_c)}^{3}} \operatorname{det}\left({\boldsymbol{\Sigma}}_{c}\right) {\boldsymbol{\Sigma}}_{c}^{-1} + \frac{1}{2} (\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}}(-1)\boldsymbol{\Sigma}_{c}^{-1}\boldsymbol{\Sigma}_{c}^{-1}\right) \\ \\ &=-\frac{1}{2}\sum_{\boldsymbol{x} \in D_{c}}\left( {\boldsymbol{\Sigma}}_{c}^{-1} - (\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}}\boldsymbol{\Sigma}_{c}^{-1}\boldsymbol{\Sigma}_{c}^{-1}\right) \\ \\ &=-\frac{1}{2}\boldsymbol{\Sigma}_{c}^{-1}\boldsymbol{\Sigma}_{c}^{-1}\sum_{\boldsymbol{x} \in D_{c}}\left( {\boldsymbol{\Sigma}}_{c} - (\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}}\right) \\ \\ &=0 \end{aligned} ∂Σc∂LL(θc)=∂Σc∂∑x∈Dc(−log(2π)d−logdet(Σc)−21(x−μ)TΣc−1(x−μ))=∂Σc∂∑x∈Dc(−logdet(Σc)−21(x−μ)TΣc−1(x−μ))=−x∈Dc∑(det(Σc)121det(Σc)31det(Σc)Σc−1+21(x−μ)(x−μ)T(−1)Σc−1Σc−1)=−21x∈Dc∑(Σc−1−(x−μ)(x−μ)TΣc−1Σc−1)=−21Σc−1Σc−1x∈Dc∑(Σc−(x−μ)(x−μ)T)=0
解出并代入 μ^c\hat{\boldsymbol{\mu}}_{c}μ^c 的值,故有
(7.13)σ^c2=1∣Dc∣∑x∈Dc(x−μ^c)(x−μ^c)T \hat{\boldsymbol{\sigma}}_{c}^{2}=\frac{1}{\left|D_{c}\right|} \sum_{\boldsymbol{x} \in D_{c}}\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)\left(\boldsymbol{x}-\hat{\boldsymbol{\mu}}_{c}\right)^{\mathrm{T}}\tag{7.13} σ^c2=∣Dc∣1x∈Dc∑(x−μ^c)(x−μ^c)T(7.13)
用到的向量和矩阵求导公式( xxx 是向量, AAA 是对称正定矩阵):
∂xTAx∂x=(2Ax) \frac{\partial x^{T} A x}{\partial x}=\left(2Ax\right) ∂x∂xTAx=(2Ax)
∂det(A)∂A=det(A)A−1 \frac{\partial \operatorname{det}(A)}{\partial A}=\operatorname{det}(A)A^{-1} ∂A∂det(A)=det(A)A−1
∂xTAx∂A=xxT \frac{\partial x^{T} A x}{\partial A}=xx^T ∂A∂xTAx=xxT
∂A−1∂A=−A−1A−1
\frac{\partial A^{-1}}{\partial A}=-A^{-1}A^{-1}
∂A∂A−1=−A−1A−1
7.3 朴素贝叶斯分类器
类条件概率 P(x∣c)P(\boldsymbol{x} | c)P(x∣c) 是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响。这时式(7.8)重写为
(7.14)P(c∣x)=P(c)P(x∣c)P(x)=P(c)P(x)∏i=1dP(xi∣c) P(c | \boldsymbol{x})=\frac{P(c) P(\boldsymbol{x} | c)}{P(\boldsymbol{x})}=\frac{P(c)}{P(\boldsymbol{x})} \prod_{i=1}^{d} P\left(x_{i} | c\right)\tag{7.14} P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)(7.14)
其中 ddd 为属性数目, xix_ixi 为 x\boldsymbol{x}x 在第 iii 个属性上的取值。
由于对所有类别来说 P(x)P(\boldsymbol{x})P(x) 相同,因此基于式(7.6)的贝叶斯判定准则有
(7.15)hnb(x)=argmaxc∈YP(c)∏i=1dP(xi∣c) h_{n b}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \max } P(c) \prod_{i=1}^{d} P\left(x_{i} | c\right)\tag{7.15} hnb(x)=c∈YargmaxP(c)i=1∏dP(xi∣c)(7.15)
这就是朴素贝叶斯分类器的表达式。
朴素贝叶斯分类器的训练过程就是基于训练集 DDD 来估计类先验概率 P(c)P(c)P(c) ,并为每个属性估计条件概率 P(xi∣c)P(x_i|c)P(xi∣c) 。
令 DcD_cDc 表示训练集 DDD 中第 ccc 类样本组成的集合,若有充足的独立同分布样本,则可容易地估计出类先验概率
(7.16)P(c)=∣Dc∣∣D∣ P(c)=\frac{\left|D_{c}\right|}{|D|}\tag{7.16} P(c)=∣D∣∣Dc∣(7.16)
对离散属性,令 Dc,xiD_{c, x_{i}}Dc,xi 表示 DcD_cDc 中在第 iii 个属性上取值为 xix_ixi 的样本组成的集合,则条件概率 P(xi∣c)P(x_i|c)P(xi∣c) 可估计为
(7.17)P(xi∣c)=∣Dc,xi∣∣Dc∣ P\left(x_{i} | c\right)=\frac{\left|D_{c, x_{i}}\right|}{\left|D_{c}\right|}\tag{7.17} P(xi∣c)=∣Dc∣∣Dc,xi∣(7.17)
对连续属性,考虑概率密度函数,假定 p(xi∣c)∼N(μc,i,σc,i2)p\left(x_{i} | c\right) \sim \mathcal{N}\left(\mu_{c, i}, \sigma_{c, i}^{2}\right)p(xi∣c)∼N(μc,i,σc,i2) ,其中 μc,i\mu_{c, i}μc,i 和 σc,i2\sigma_{c, i}^{2}σc,i2 分别是第 ccc 类样本在第 iii 个属性上取值的均值和方差,则有
(7.18)p(xi∣c)=12πσc,iexp(−(xi−μc,i)22σc,i2) p\left(x_{i} | c\right)=\frac{1}{\sqrt{2 \pi} \sigma_{c, i}} \exp \left(-\frac{\left(x_{i}-\mu_{c, i}\right)^{2}}{2 \sigma_{c, i}^{2}}\right)\tag{7.18} p(xi∣c)=2πσc,i1exp(−2σc,i2(xi−μc,i)2)(7.18)
注意,若某个属性值在训练集中没有与某个类同时出现过,则直接基于式(7.17)进行概率估计,再根据式(7.15)进行判别将出现问题。这时,这个属性相当于这个类的条件概率为 000 ,即式(7.17)值为 000 ,最终导致式(7.15)值为 000 。这样,无论其他属性对结果有怎样的影响,都无法体现,这是不合理的。
为避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行“平滑”,常用“拉普拉斯修正”。具体来说,令 NNN 表示训练集 DDD 中可能的类别数, NiN_iNi 表示第 iii 个属性可能的取值数,则式(716)和(7.17)分别修正为
(7.19)P^(c)=∣Dc∣+1∣D∣+N \hat{P}(c)=\frac{\left|D_{c}\right|+1}{|D|+N}\tag{7.19} P^(c)=∣D∣+N∣Dc∣+1(7.19)
(7.20)P^(xi∣c)=∣Dc,xi∣+1∣Dc∣+Ni \hat{P}\left(x_{i} | c\right)=\frac{\left|D_{c, x_{i}}\right|+1}{\left|D_{c}\right|+N_{i}}\tag{7.20} P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1(7.20)
拉普拉斯修正避免了因训练集样本不充分而导致概率估值为零的问题,并且在训练集变大时,修正过程所引入的先验的影响也会逐渐变得可忽略,使得估值渐趋向于实际概率值。
拉普拉斯修正实质上假设了属性值与类别均匀分布,这是在朴素贝叶斯学习过程中额外引入的关于数据的先验。
7.4 半朴素贝叶斯分类器
半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。“独依赖估计”(简称ODE)是半朴素贝叶斯分类器最常用的一种策略。“独依赖”假设每个属性在类别之外最多仅依赖于一个其他属性,即
(7.21)P(c∣x)∝P(c)∏i=1dP(xi∣c,pai) P(c | \boldsymbol{x}) \propto P(c) \prod_{i=1}^{d} P\left(x_{i} | c, p a_{i}\right)\tag{7.21} P(c∣x)∝P(c)i=1∏dP(xi∣c,pai)(7.21)
其中 paipa_ipai 为属性 xix_ixi 所依赖的属性,称为 xix_ixi 的父属性。对每个属性 xix_ixi ,若其父属性 paipa_ipai 已知,则可采用类似式(7.20)的办法来估计概率值 P(xi∣c,pai)P\left(x_{i} | c, p a_{i}\right)P(xi∣c,pai) ,问题的关键转化为如何确定每个属性的父属性。不同的做法产生不同的独依赖分类器。
SPODE 方法:假设所有属性都依赖于同一个属性,称为“超父”,然后通过交叉验证等模型选择方法来确定超父属性。
TAN 方法:计算任意两个属性之间的条件互信息;以属性为结点构建完全图,任意两结点之间边的权重设为它们的条件互信息;构建此完全图的最大带权生成树,挑选根变量,将边置为有向;加入类别结点 yyy ,增加从 yyy 到每个属性的有向边。通过最大生成树算法,TAN 方法实际上仅保留了强相关属性之间的依赖性。
AODE 方法:尝试将每个属性作为超父来构建 SPODE ,然后将那些具有足够训练数据支撑的 SPODE 集成起来,作为最终结果。
- 机器学习第一章学习笔记及心得(周志华著,西瓜书)
- 《机器学习》周志华(西瓜书)学习笔记
- 绪论(2)--周志华机器学习学习笔记与课后习题
- 周志华《机器学习》 学习笔记(一) 引言与基本术语
- 机器学习(周志华)读书笔记---第7章 贝叶斯分类器
- 周志华《机器学习》 学习笔记(四) 性能度量
- 《机器学习》 -- 周志华 (第二章学习笔记)
- 周志华《机器学习》笔记(1):西瓜书第一章
- 【西瓜书】机器学习(周志华)学习问题记录
- 关于西瓜书书后习题的思考:机器学习学习笔记二
- 《机器学习》--周志华 (第三章学习笔记)
- 机器学习笔记3.线性模型----教材周志华西瓜书
- 《机器学习》--周志华 (第五章学习笔记)
- 周志华西瓜书笔记一 机器学习介绍
- 《机器学习》--周志华 (第六章学习笔记)
- 机器学习笔记2.模型评估于选择----教材周志华西瓜书
- 绪论(3)--周志华机器学习学习笔记与课后习题
- 《机器学习》--周志华 (第九章学习笔记)
- 周志华《机器学习》——学习笔记
- 周志华 机器学习 学习笔记 (1)