版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/87651174
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
贝叶斯算法根据概率,选择概率最大的一类。
1. 朴素贝叶斯算法
朴素贝叶斯(naive Bayes)采用了属性条件独立性假设:对已知类别,假设所有属性相互独立。
P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
-
P(c):类先验概率,表达了各类样本所占比例,根据大数定律,可通过频率估计概率
-
P(x∣c):样本
x相对于类别
c的条件概率,根据假设,每个属性独立对结果影响
-
P(x):归一化证据因子,与类别标记无关
朴素贝叶斯的判定准则为:
hnb(x)=argc∈CmaxP(c)i=1∏dP(xi∣c)
其中,
P(c)=∣D∣∣Dc∣,对于离散属性
P(xi∣c)=∣Dc∣∣Dc,xi∣,对于连续属性采用概率密度函数。
若某个属性值没有与每个类同时出现,则会造成连乘计算为零,可采用拉普拉斯修正,令
N表示训练集
D中可能的类别数,
Ni表示第
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=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∣c)P(xj∣c)P(xi,xj∣c)
- 以属性为节点构建完全图,边的权重设置为
I(xi,xj∣y)
- 构建最大带权生成树,挑选根变量,将边设置为有向
- 加入类别节点
y,增加从
y到每个属性的有向边
2.4. AODE
AODE(Average One-Dependent Estimator)是基于集成学习的分类器,AODE尝试将每个属性作为超父构建SPODE,然后将具有足够训练数据支撑的SPODE集成起来。
P(c∣x)∝i=1 ∣Dxi∣⩾m′∑dP(c,xi)j=1∏dP(xj∣c,xi)
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~