(《机器学习》完整版系列)第7章 贝叶斯分类器——7.5 特殊的半朴素贝叶斯分类器(SPODE、TAN、AODE,研究特殊的“父子”关系)
一般的半朴素贝叶斯分类器需要知道每个$x_i$的父$\mathrm{pa}_i$,假定所有属性$x_i$有同一个父属性(该属性称为“超父”),特殊的半朴素贝叶斯分类器研究一些特殊的“父子”关系。
一般的半朴素贝叶斯分类器需要知道每个 x i x_i xi的父 p a i \mathrm{pa}_i pai,
假定所有属性 x i x_i xi有同一个父属性(该属性称为“超父”),特殊的半朴素贝叶斯分类器研究一些特殊的“父子”关系。
特殊的半朴素贝叶斯分类器
本篇讨论几个特殊的半朴素贝叶斯分类器。
1、SPODE
前述的一般的半朴素贝叶斯分类器需要知道每个 x i x_i xi的父 p a i \mathrm{pa}_i pai,假定不知道呢?我们在一种特殊情况下研究这种“不知道”:
假定所有属性 x i x_i xi有同一个父属性(该属性称为“超父”),但不知哪个属性为“超父”。
我们把“超父”视为“超参数”,先任意指定它:
先看看以 x 1 x_1 x1为“超父”的情况,即 p a i = x 1 , ( i = 2 , 3 , ⋯ , d ) , p a 1 = T r u e \mathrm{pa}_i=x_1,(i=2,3,\cdots,d),\mathrm{pa}_1=\mathrm{True} pai=x1,(i=2,3,⋯,d),pa1=True,则式(7.32)变为:
P ( c ∣ x ) ∝ P ( c ) P ( x 1 ∣ c ) ∏ i = 2 d P ( x i ∣ c , x 1 ) = P ( c , x 1 ) ∏ i = 2 d P ( x i ∣ c , x 1 ) \begin{align} P(c\,|\,\boldsymbol{x}) & \propto P(c)P({x_1}\,|\,c)\mathop{\prod }\limits_{i=2}^dP({x_i}\,|\,c,x_1)\notag \\ & = P(c,x_1)\mathop{\prod }\limits_{i=2}^dP({x_i}\,|\,c,x_1) \tag{7.34} \end{align} P(c∣x)∝P(c)P(x1∣c)i=2∏dP(xi∣c,x1)=P(c,x1)i=2∏dP(xi∣c,x1)(7.34)
这样,给定训练集就可以利用上节的求解步骤求出一个半朴素贝叶斯分类器,对该分类器可以在测试集上度量其性能。
在数据集 D D D上使用交叉验证法(参见【西瓜书2.2.2节】),得到以 x 1 x_1 x1为“超父”的半朴素贝叶斯分类器的性能为 E 1 E_1 E1。
同样,求得分别以 x 2 , x 3 , ⋯ , x d x_2,x_3,\cdots,x_d x2,x3,⋯,xd为“超父”的半朴素贝叶斯分类器的性能为 E 2 , E 2 , ⋯ , E d E_2,E_2,\cdots,E_d E2,E2,⋯,Ed。
比较这些性能,找到最小者,不妨设为 E i ∗ E_{i^*} Ei∗,则 x i ∗ x_{i^*} xi∗为最优“超父”。
最后,以 x i ∗ x_{i^*} xi∗为“超父”,以数据集 D D D全体数据为训练集,用上节的求解步骤训练出SPODE分类器 h ∗ ( x ) h^*(\boldsymbol{x}) h∗(x)。
2.TAN
我们先通过如下步骤构建一种树形结构:
(1)定义互信息
I ( A , B ) = P ( A , B ) log P ( A , B ) P ( A ) P ( B ) \begin{align} I(A,B)=P(A,B){\log} \frac{P(A,B)}{P(A)P(B)} \tag{7.35} \end{align} I(A,B)=P(A,B)logP(A)P(B)P(A,B)(7.35)
则任意两个属性间的条件互信息为
I ( x i , x j ∣ y ) = ∑ c ∈ Y P ( x i , x j ∣ c ) log P ( x i , x j ∣ c ) P ( x i ∣ c ) P ( x j ∣ c ) \begin{align} I(x_i,x_j\,|\,y)=\sum_{c \in \mathcal{Y} }P(x_i,x_j\,|\,c){\log} \frac{P(x_i,x_j\,|\,c)}{P(x_i\,|\,c)P(x_j\,|\,c)} \tag{7.36} \end{align} I(xi,xj∣y)=c∈Y∑P(xi,xj∣c)logP(xi∣c)P(xj∣c)P(xi,xj∣c)(7.36)
(2)以属性为结节构建完全图, x i , x j x_i,x_j xi,xj连线上的权重为 I ( x i , x j ∣ y ) I(x_i,x_j\,|\,y) I(xi,xj∣y)。
(3)从权重最小的边开始,去掉一些边,使得
- 所有结点是连通的;
- 使用的边数最少;
- 边上的权重之和最大;
(4)挑选根变量,将边置为有向,形成“父 → \rightarrow →子”关系,即形成一棵树(称为最大带权生成树,有专门的算法)。
完成了上述结构构建后,对每个类 c c c计算 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(c∣x):
(1)由数据集 D D D中各类别的频率【西瓜书式(7.16)】(或其修正【西瓜书式(7.19)】)作为 P ( c ) P(c) P(c)的近似值。
(2)利用式(7.33)计算估值 P ( x i ∣ c , p a i ) P(x_i\,|\,c,\mathrm{pa}_i) P(xi∣c,pai)。
(3)利用式(7.32)即【西瓜书式(7.21)】右边,计算 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(c∣x)。
最后,基于所有的 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(c∣x),用【西瓜书式(7.6)】得到TAN的分类器 h ∗ ( x ) h^*(\boldsymbol{x}) h∗(x)。
3、AODE
前述的SPODE是逐一试“超父”,找一个最优“超父”,现在我们指定“超父资格”,具有资格的“超父”中并不选优,而是对结果做“平均”,这就是AODE。
资格:数据集 D D D中样本的第 i i i个属性若取值比较集中(如,第 i i i个属性 x i x_i xi取值为 x i ′ x_i' xi′的样本数超过指定的阈值 m ′ m' m′,记为 ∣ D x i ∣ ⩾ m ′ |D_{x_i}|\geqslant m' ∣Dxi∣⩾m′),则该属性 x i x_i xi有资格当超父。
属性 x i x_i xi当超父时,则有类似于式(7.34)的式子:
P ( c ∣ x ) ∝ P ( c , x i ) ∏ j ≠ i d P ( x j ∣ c , x i ) = P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) (由于 P ( x i ∣ c , x i ) = 1 ) \begin{align} P(c\,|\,\boldsymbol{x}) & \propto P(c,x_i)\mathop{\prod }\limits_{j\neq i}^dP({x_j}\,|\,c,x_i)\notag \\ & = P(c,x_i)\mathop{\prod }\limits_{j=1}^dP({x_j}\,|\,c,x_i)\quad \text{(由于$P({x_i}\,|\,c,x_i)=1$)} \tag{7.37} \end{align} P(c∣x)∝P(c,xi)j=i∏dP(xj∣c,xi)=P(c,xi)j=1∏dP(xj∣c,xi)(由于P(xi∣c,xi)=1)(7.37)
其中, ∣ D x i ∣ ⩾ m ′ |D_{x_i}|\geqslant m' ∣Dxi∣⩾m′。 这就是一个给定超父的SPODE。
对于样本集的属性逐个考察,可能有多个属性满足上述的条件,即有多个式(7.37),求其平均值,则
P ( c ∣ x ) ∝ ∑ ∣ D x i ∣ ⩾ m ′ P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) \begin{align} P(c\,|\,\boldsymbol{x}) \propto \sum_{|D_{x_i}|\geqslant m'}P(c,x_i)\mathop{\prod }\limits_{j=1}^dP({x_j}\,|\,c,x_i) \tag{7.38} \end{align} P(c∣x)∝∣Dxi∣⩾m′∑P(c,xi)j=1∏dP(xj∣c,xi)(7.38)
视为多个给定超父的SPODE的集成。
AODE分为如下步骤:
(1)对数据集 D D D中样本的属性取值情况进行统计,求出满足( ∣ D x i ∣ ⩾ m ′ |D_{x_i}|\geqslant m' ∣Dxi∣⩾m′)的超父属性 x i x_i xi。
(2)对每个超父属性 x i x_i xi,基于数据集 D D D中样本进行分门别类地“计数”后,利用【西瓜书式(7.24)(7.25)】代入式(7.38)和号 ∑ \sum ∑右侧。
(3)由式(7.38)算出每个 c c c的 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(c∣x)。
(4)基于所有的 P ( c ∣ x ) P(c\,|\,\boldsymbol{x}) P(c∣x),用【西瓜书式(7.6)】得到AODE的分类器 h ∗ ( x ) h^*(\boldsymbol{x}) h∗(x)。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:7.4 朴素贝叶斯分类器与半朴素贝叶斯分类器(样本独立?属性独立?类条件属性独立?)
下一篇:7.6 贝叶斯网(也称信念网)结构(网络结构也是“超参数”)、贝叶斯图络学习(两级搜索法)
更多推荐
所有评论(0)