为什么需要半朴素贝叶斯分类器

1:后验概率P(cx)计算起来比较困难。
2:属性条件独立性假设在现实任务中往往很难成立。

半朴素贝叶斯分类器的基本思想

适当考虑一部分属性之间的相互依赖信息,从而既不需要进行联合概率计算,又不至于彻底忽略比较强的属性依赖关系。

常用策略_”独依赖估计”

方法:假设每个属性在类别之外最多仅依赖于一个其他属性

P(cx)P(c)Πdi=1P(xic,pai)

其中pai为属性xi所依赖的属性,称为xi的父属性。此时,对每个属性xi,若其夫属性pai已知,则可以采用类似
P^(xic)=|Dc,xi|+1|Dc|+Ni
的办法来估计概率值P(xic,pai)于是问题就转换为如何确定每个属性的父属性,不同的做法将产生不同的独依赖分类器。

不同的独依赖分类器

NB

就是朴素贝叶斯分类器
机器学习笔记_贝叶斯分类器(IV)_半朴素贝叶斯分类器

SPODE

假设所有的属性都依赖于同一个属性,称为“超父”,然后通过交叉验证的方式来确定超父属性。由此产生了SPODE(Super-Parent ODE)方法。
机器学习笔记_贝叶斯分类器(IV)_半朴素贝叶斯分类器

TAN

TAN(Tree Augmented naive Bayes)在最大带权生成树(maximum weighted spanning tree)算法的基础上,通过下面的步骤将属性间的依赖关系简化为如图所示的树形结构:
机器学习笔记_贝叶斯分类器(IV)_半朴素贝叶斯分类器
1. 计算任意两个属性之间的条件互信息(conditional mutual information)

I(xi,xjy)=xi,xj;cYP(xi,xjc)logP(xi,xjc)P(xic)P(xjc)

2. 以属性为结点构建完全图,任意两个结点之间的边权重重设为I(xi,xjy);
3. 构建此完全图的最大带权生成树,挑选根变量,将边置为有向边
4. 加入类别结点y,增加从y到每个属性的有向边。

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

AODE

AODE(Averaged One-Dependent Estimator)是一种基于集成学习机制、更为强大的独依赖分类器,与SPODE通过模型选择确定超父属性不同,AODE尝试将每个属性作为超父来构建SPODE。然后将这些具有足够训练数据支持的SPODE集成起来作为最终结果,即:

P(cx)i=1|Dxi|mdP(c,xi)Πdj=1P(xic,xi)

其中Dxi在第i个属性上取值为xi的样本的集合,m为阈值或者常数,显然AODE需要估计P(c,xi)P(xjc,xi)于是:
P^(c,xi)=|Dc,xi|+1|D|+NiP^(xjc,xi)=|Dc,xi,xj|+1|Dc,xi|+Nj

其中Ni是第i个属性可能的取值数,Dc,xi是类别为c且在第i个属性上取值为xi的样本的集合,Dc,xi,xj是类别为c且在第i和第j个属性上取值分别为xixj的样本的集合。

相关文章: