文章目录
0. 前言1. 朴素贝叶斯算法2. 半朴素贝叶斯算法2.1. ODE2.2. SPODE2.3. TAN2.4. AODE如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
贝叶斯算法根据概率,选择概率最大的一类。
1. 朴素贝叶斯算法
朴素贝叶斯(naive Bayes)采用了属性条件独立性假设:对已知类别,假设所有属性相互独立。
P(c∣x)=P(c)P(x∣c)P(x)=P(c)P(x)∏i=1dP(xi∣c)P(c\mid x)=\frac{P(c)P(x\mid c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^dP(x_i\mid c) P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
P(c)P(c)P(c):类先验概率,表达了各类样本所占比例,根据大数定律,可通过频率估计概率P(x∣c)P(x\mid c)P(x∣c):样本xxx相对于类别ccc的条件概率,根据假设,每个属性独立对结果影响P(x)P(x)P(x):归一化证据因子,与类别标记无关
朴素贝叶斯的判定准则为:
hnb(x)=argmaxc∈CP(c)∏i=1dP(xi∣c)h_{nb}(x)=\arg \max_{c\in C}P(c)\prod_{i=1}^dP(x_i\mid c) hnb(x)=argc∈CmaxP(c)i=1∏dP(xi∣c)
其中,P(c)=∣Dc∣∣D∣P(c)=\frac{|D_c|}{|D|}P(c)=∣D∣∣Dc∣,对于离散属性P(xi∣c)=∣Dc,xi∣∣Dc∣P(x_i\mid c)=\frac{|D_{c,x_i}|}{|D_c|}P(xi∣c)=∣Dc∣∣Dc,xi∣,对于连续属性采用概率密度函数。
若某个属性值没有与每个类同时出现,则会造成连乘计算为零,可采用拉普拉斯修正,令NNN表示训练集DDD中可能的类别数,NiN_iNi表示第iii个属性可能的取值数目:
P^(c)=∣Dc∣+1∣D∣+NP^(xi∣c)=∣Dc,xi∣+1∣Dc∣+Ni\hat{P}(c)=\frac{|D_c|+1}{|D|+N}\\ \hat{P}(x_i\mid c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i} P^(c)=∣D∣+N∣Dc∣+1P^(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
2. 半朴素贝叶斯算法
半朴素意味着适当考虑一部分属性间的相互依赖信息。
2.1. ODE
ODE(One-Dependent Estimator)假设每个属性在类别之外最多依赖于一个其他属性。
P(c∣x)∝P(c)∏i=1dP(xi∣c,pai)P(c\mid x)\propto P(c)\prod_{i=1}^dP(x_i\mid c,pa_i) P(c∣x)∝P(c)i=1∏dP(xi∣c,pai)
2.2. SPODE
SPODE(Super-Parent ODE)是假设所有属性都依赖于同一个属性,称为“超父”。
可以通过交叉验证的方式确定超父。如下图所示(图源:机器学习):
2.3. TAN
TAN(Tree Augmented naive Bayes)通过以下方式构建:
计算任意两个属性之间的条件互信息I(xi,xj∣y)=∑xi,xj;c∈CP(xi,xj∣c)logP(xi,xj∣c)P(xi∣c)P(xj∣c)I(x_i,x_j\mid y)=\sum_{x_i,x_j;c\in C}P(x_i,x_j\mid c)\log \frac{P(x_i,x_j\mid c)}{P(x_i\mid c)P(x_j\mid c)}I(xi,xj∣y)=∑xi,xj;c∈CP(xi,xj∣c)logP(xi∣c)P(xj∣c)P(xi,xj∣c)以属性为节点构建完全图,边的权重设置为I(xi,xj∣y)I(x_i,x_j\mid y)I(xi,xj∣y)构建最大带权生成树,挑选根变量,将边设置为有向加入类别节点yyy,增加从yyy到每个属性的有向边
2.4. AODE
AODE(Average One-Dependent Estimator)是基于集成学习的分类器,AODE尝试将每个属性作为超父构建SPODE,然后将具有足够训练数据支撑的SPODE集成起来。
P(c∣x)∝∑i=1∣Dxi∣⩾m′dP(c,xi)∏j=1dP(xj∣c,xi)P(c\mid x)\propto \sum_{i=1\ |D_{x_i}|\geqslant m'}^dP(c,x_i)\prod_{j=1}^dP(x_j\mid c,x_i) P(c∣x)∝i=1∣Dxi∣⩾m′∑dP(c,xi)j=1∏dP(xj∣c,xi)
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~