西瓜书+实战+吴恩达机器学习(八)监督学习之朴素贝叶斯 Naive Bayes

文章目录

  • 0. 前言
  • 1. 朴素贝叶斯算法
  • 2. 半朴素贝叶斯算法
    • 2.1. ODE
    • 2.2. SPODE
    • 2.3. TAN
    • 2.4. AODE

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

贝叶斯算法根据概率,选择概率最大的一类。

1. 朴素贝叶斯算法

朴素贝叶斯(naive Bayes)采用了属性条件独立性假设:对已知类别,假设所有属性相互独立。

P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ 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(cx)=P(x)P(c)P(xc)=P(x)P(c)i=1dP(xic)

  • P ( c ) P(c) P(c):类先验概率,表达了各类样本所占比例,根据大数定律,可通过频率估计概率
  • P ( x ∣ c ) P(x\mid c) P(xc):样本 x x x相对于类别 c c c的条件概率,根据假设,每个属性独立对结果影响
  • P ( x ) P(x) P(x):归一化证据因子,与类别标记无关

朴素贝叶斯的判定准则为:
h n b ( x ) = arg ⁡ max ⁡ c ∈ C P ( c ) ∏ i = 1 d P ( x i ∣ c ) h_{nb}(x)=\arg \max_{c\in C}P(c)\prod_{i=1}^dP(x_i\mid c) hnb(x)=argcCmaxP(c)i=1dP(xic)
其中, P ( c ) = ∣ D c ∣ ∣ D ∣ P(c)=\frac{|D_c|}{|D|} P(c)=DDc,对于离散属性 P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i\mid c)=\frac{|D_{c,x_i}|}{|D_c|} P(xic)=DcDc,xi,对于连续属性采用概率密度函数。

若某个属性值没有与每个类同时出现,则会造成连乘计算为零,可采用拉普拉斯修正,令 N N N表示训练集 D D D中可能的类别数, N i N_i Ni表示第 i i i个属性可能的取值数目:
P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \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+NDc+1P^(xic)=Dc+NiDc,xi+1

2. 半朴素贝叶斯算法

半朴素意味着适当考虑一部分属性间的相互依赖信息

2.1. ODE

ODE(One-Dependent Estimator)假设每个属性在类别之外最多依赖于一个其他属性。
P ( c ∣ x ) ∝ P ( c ) ∏ i = 1 d P ( x i ∣ c , p a i ) P(c\mid x)\propto P(c)\prod_{i=1}^dP(x_i\mid c,pa_i) P(cx)P(c)i=1dP(xic,pai)

2.2. SPODE

SPODE(Super-Parent ODE)是假设所有属性都依赖于同一个属性,称为“超父”。

可以通过交叉验证的方式确定超父。如下图所示(图源:机器学习):
西瓜书+实战+吴恩达机器学习(八)监督学习之朴素贝叶斯 Naive Bayes_第1张图片

2.3. TAN

TAN(Tree Augmented naive Bayes)通过以下方式构建:

  1. 计算任意两个属性之间的条件互信息 I ( x i , x j ∣ y ) = ∑ x i , x j ; c ∈ C P ( x i , x j ∣ c ) log ⁡ P ( x i , x j ∣ c ) P ( x i ∣ c ) P ( x j ∣ 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,xjy)=xi,xj;cCP(xi,xjc)logP(xic)P(xjc)P(xi,xjc)
  2. 以属性为节点构建完全图,边的权重设置为 I ( x i , x j ∣ y ) I(x_i,x_j\mid y) I(xi,xjy)
  3. 构建最大带权生成树,挑选根变量,将边设置为有向
  4. 加入类别节点 y y y,增加从 y y y到每个属性的有向边

2.4. AODE

AODE(Average One-Dependent Estimator)是基于集成学习的分类器,AODE尝试将每个属性作为超父构建SPODE,然后将具有足够训练数据支撑的SPODE集成起来。
P ( c ∣ x ) ∝ ∑ i = 1   ∣ D x i ∣ ⩾ m ′ d P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) 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(cx)i=1 DximdP(c,xi)j=1dP(xjc,xi)


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

你可能感兴趣的:(机器学习)