机器学习算法——贝叶斯分类器4(半朴素贝叶斯分类器)

为了降低贝叶斯公式中估计后验概率的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类称为“半朴素贝叶斯分类器”的学习方法。

半朴素分类器的基本思想是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。“独依赖估计”(One-Dependent Estimator,ODE)是半朴素贝叶斯分类器常用的一种策略。即假设每个属性在类别之外最多仅依赖于一个其它属性,即

P(x_i|c) = \prod_{i=1}^{d} P(x_i|c,pa_i)

其中,pa_i为属性xi所依赖的属性,称为xi的父属性。此时,若每个属性xi,若其父属性pa_i已知,则可采用类似的式子来估计P(x_i|c,pa_i).

这样问题就转化为如何确定每个属性的父属性,不同的做法会产生不同的独依赖分类器。

SPODE算法是最直接的做法,就是假设所有属性都依赖于同一个属性,称为“超父”,然后通过交叉验证等模型选择方法来确定超父属性。

TAN算法则是在最大带权生成树算法的基础上,通过以下步骤约简属性间依赖关系。

(1)计算任意两个属性之间的条件互信息

I(x_i,x_j|c) = \sum_{x_i,x_j,c \in y} log \frac{P(x_i,x_j|c)}{P(x_i,c)P(x_j |c)}

(2)以属性为节点构建完全图,任意两个结点之间边的权重设为I(x_i,x_j|c)

(3)构建此完全图的最大带权生成树,挑选根变量,将边置为有向

(4)加入类别结点y,增加从y到每个属性的有向边。

条件互信息刻画了属性xi和xj在已知类别情况下的相关性。因此,通过最大生成树算法,TAN实际上仅保留了强相关属性之间的依赖性。

AODE算法是一种基于集成学习机制、更为强大的独依赖分类器。它尝试将每个属性作为超父来构建SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果,即

P(c|x) = \sum_{i=1, |D_{x_i}| \geqslant m^{'}}^{d} P(c,x_i) \prod_{j=1}^{d} P(x_j|c,x_i)

D_{x_i}是在第i个属性上取值为x_i的样本集合,m^{'}为阈值常数。显然AODE需估计P(c,x_i)P(x_j|c,x_i),有

\hat{P}(c,x_i) = \frac{|D_{c,x_i}|+1}{|D|+N_i}

\hat{P}(x_j|c,x_i) = \frac{|D_{c,x_i,x_j}|+1}{|D_{c,x_i}|+N_j}

Ni是第i个属性可能的取值数。D_{c,x_i}是类别为c,在第i个属性上取值为xi的样本集合。D_{c,x_i,x_j}是类别为c且在第i和第j个属性上取值分别为xi和xj的样本集合。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值