朴素贝叶斯+贝叶斯估计+BP人工神经网络习题手算|手工推导与习题计算

1.有 1000 个水果样例. 它们可能是香蕉,橙子或其它水果,已知每个水果的 3 种特性:是否偏长、是否甜、颜色是否是黄色

类型不长不甜黄色非黄Total
香蕉40010035015045050500
橙子03001501503000300
其它1001001505050150200
Total5005006503508002001000

根据上表数据,分别利用朴素贝叶斯分类贝叶斯估计方法,对一个(长,甜,黄色)水果进行识别,判断该水果属于:香蕉,橙子或其它水果哪一类?

解:

 

 

条件一致,舍去分母,加上分母可以将 正比于 替换为 等号

长甜黄色长甜黄色香蕉香蕉长甜黄色橙子橙子长甜黄色其他水果其他水果长甜黄色长甜黄色香蕉香蕉长甜黄色橙子橙子长甜黄色其他水果其他水果P(长,甜,黄色)=P(长,甜,黄色∣香蕉)×P(香蕉)+P(长,甜,黄色∣橙子)×P(橙子)+P(长,甜,黄色∣其他水果)×P(其他水果)

朴素贝叶斯分类方法:

香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉P(香蕉|长,甜,黄色)∝P(长|香蕉)∗P(甜|香蕉)∗P(黄色|香蕉)∗P(香蕉)=400500×350500×450500×5001000=0.0252

橙子长,甜,黄色长橙子甜橙子黄色橙子橙子橙子长,甜,黄色长橙子甜橙子黄色橙子橙子P(橙子|长,甜,黄色)∝P(长|橙子)∗P(甜|橙子)∗P(黄色|橙子)∗P(橙子)=0300×150300×300300×3001000=0.0

其它长,甜,黄色长其它甜其它黄色其它其它其它长,甜,黄色长其它甜其它黄色其它其它P(其它|长,甜,黄色)∝P(长|其它)∗P(甜|其它)∗P(黄色|其它)∗P(其它)=100200×150200×50200×2001000=0.01875

直接选择最大概率值就好了,即根据朴素贝叶斯分类,该水果属于香蕉.

贝叶斯估计方法:

设平滑参数a为1,其中特征可能数k都为2

香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉P(香蕉|长,甜,黄色)∝P(长|香蕉)∗P(甜|香蕉)∗P(黄色|香蕉)∗P(香蕉)=400+1500+2×350+1500+2×450+1500+2×5001000=0.025089

橙子长,甜,黄色长橙子甜橙子黄色橙子橙子橙子长,甜,黄色长橙子甜橙子黄色橙子橙子P(橙子|长,甜,黄色)∝P(长|橙子)∗P(甜|橙子)∗P(黄色|橙子)∗P(橙子)=0+1300+2×150+1300+2×300+1300+2×3001000=0.0

其它长,甜,黄色长其它甜其它黄色其它其它其它长,甜,黄色长其它甜其它黄色其它其它P(其它|长,甜,黄色)∝P(长|其它)∗P(甜|其它)∗P(黄色|其它)∗P(其它)=100+1200+2×150+1200+2×50+1200+2×2001000=0.01875

结果依然不变,即根据朴素贝叶斯估计,该水果属于香蕉.

解析:

首先,我们需要使用贝叶斯定理计算在给定(长,甜,黄色)水果的情况下,该水果属于每个类别的概率。由于在这个问题中每个特征是二元的(要么是,要么不是),因此我们可以使用朴素贝叶斯分类方法。对于一个测试水果,我们需要计算以下每个类别的条件概率,从而确定它最可能属于哪个类别:

香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉香蕉长,甜,黄色长香蕉甜香蕉黄色香蕉香蕉P(香蕉|长,甜,黄色)∝P(长|香蕉)∗P(甜|香蕉)∗P(黄色|香蕉)∗P(香蕉)

橙子长,甜,黄色长橙子甜橙子黄色橙子橙子橙子长,甜,黄色长橙子甜橙子黄色橙子橙子P(橙子|长,甜,黄色)∝P(长|橙子)∗P(甜|橙子)∗P(黄色|橙子)∗P(橙子)

其它长,甜,黄色长其它甜其它黄色其它其它其它长,甜,黄色长其它甜其它黄色其它其它P(其它|长,甜,黄色)∝P(长|其它)∗P(甜|其它)∗P(黄色|其它)∗P(其它)

其中类别类别P(类别)是每个类别的先验概率,可以通过将对应行中的总数除以总样本数进行计算。例如,对于香蕉类别,香蕉香蕉P(香蕉)=500/1000=0.5.

而条件概率特征类别特征类别P(特征|类别)可以通过对应的条目计算,例如对于“长”特征和香蕉类别,长香蕉长香蕉P(长|香蕉)=400/500=0.8。

因此,对于一个(长,甜,黄色)水果,每个类别的朴素贝叶斯得分如下:

类别香蕉橙子其它
得分0.252000.000000.01875

因此,该水果最有可能属于香蕉类别。

然而,朴素贝叶斯分类方法受极端数据点的影响较大,因此我们可以使用贝叶斯估计方法来缓解这种情况。具体来说,对于每个类别的每个特征,我们可以引入一个小的平滑参数进行修正。假设平滑参数为a,那么对于任意特征x和类别y,我们可以按照以下方式计算条件概率:

P(x|y)=count(x,y)+acount(y)+a∗NumPossibleValues(x)

其中,count(x,y)是在y类别下x特征的计数。count(y)是y类别的样本总数,NumPossibleValues(x)是x特征可能的取值,即2。

选择a的值通常是根据经验确定的,但在这里我们可以使用a = 1。

使用贝叶斯估计方法进行相同的分类,我们得到以下朴素贝叶斯估计得分表:

类别香蕉橙子其它
得分0.250890.000490.01887

在这种情况下

附录:

朴素贝叶斯分类是基于贝叶斯定理的一种分类算法,它假设各个特征之间相互独立,因此被称为“朴素”。

朴素贝叶斯分类的计算流程如下:

  1. 准备训练数据集,包括特征和对应的类别标签。

  2. 计算每个类别出现的概率 P(Y),并计算每个特征在每个类别下的概率 P(Xi|Y),即给定类别 Y 的条件下,每个特征 Xi 出现的概率。

  3. 对于一个新的样本,计算其属于每个类别的条件概率 P(Y|X),即在给定特征 X 的情况下,属于类别 Y 的概率。根据贝叶斯定理,有:

    P(Y|X)=P(X|Y)P(Y)P(X)

    其中,P(X|Y) 是根据训练数据估算出的在类别 Y 下特征 X 出现的条件概率,P(Y) 是训练数据中类别 Y 出现的概率,P(X) 是特征 X 的边缘概率,可以通过P(X)=∑YP(X|Y)P(Y)计算得到。

  4. 根据上述公式计算每个类别下给定样本的条件概率,确定样本所属的类别。

如果给出的是多个特征,朴素贝叶斯分类的计算方式和单个特征相同,只是需要将所有特征的条件概率相乘。

具体来说,设一个样本的特征向量为 X=(X1,X2,⋯,Xn),其中 n 是特征的数量。朴素贝叶斯模型假设特征之间相互独立,因此可以将样本属于类别 Y 的条件概率表示为:

P(Y|X)=P(X|Y)P(Y)P(X)=P(Y)∏i=1nP(Xi|Y)P(X)

其中,P(Y) 是类别 Y 出现的概率,可以通过训练集中出现类别 Y 的样本数占总样本数的比例进行估计;P(Xi|Y) 是给定类别 Y 的条件下特征 Xi 出现的概率,可以通过训练集中出现类别 Y 且特征 Xi 出现的样本数占出现类别 Y 的样本数的比例进行估计。

P(X) 是特征向量 X 的边缘概率,可以通过对所有可能的类别 Y 进行求和得到:

P(X)=∑YP(Y)∏i=1nP(Xi|Y)

然后,将计算得到的 P(Y|X) 按照概率从大到小排序,通常选择概率最大的类别作为样本所属的类别。

贝叶斯估计方法,也称为拉普拉斯平滑(Laplace smoothing),是贝叶斯分类器中一种常用的平滑方法。它的主要思想是对于没有在训练数据中出现过的特征值,仍然分配一个非零的概率值,以避免在计算概率时出现分母为零的情况。

具体来说,设某个特征在训练数据集中出现的次数为 N,特征的可能取值个数为 k,则在贝叶斯估计中,我们将原本的频率估计公式 P(X=xi|Y=yj)=Ni,jNj 改为:

Psmooth(X=xi|Y=yj)=Ni,j+αNj+αk

其中,Ni,j 表示在训练数据集中,特征 X=xi 且标签 Y=yj 的样本数,Nj 表示标签为 Y=yj 的样本数,α 是一个平滑参数,通常取值为 1。这样,在计算未出现过的特征值的概率时,分子仍然为 1,分母不为零,从而避免了出现无法计算的情况。

贝叶斯估计方法的优点是可以有效地避免过拟合,提高模型的泛化能力。但是,在实际应用中,由于使用了额外的参数 α,需要进行参数调整,否则可能会影响模型的表现。

2.以公式f(x)=tansig(x) 为激活函数,求BP网络输出层和隐含层的权重调整公式

解:

对于一个三层神经网络,输入层称为i,隐含层称为j,输出层称为k.

当激活函数为f(x)=tansig(x)=Tanh(x)=ex−e−xex+e−x时

其导数为f′(x)=1−f(x)2

之前bp神经网络推导的结果,对于输出层:

E=12∑k=1L(yk−Ok)2

Δwjk=−η∂E∂wjk=−η∂E∂Ik∂Ik∂wjk=−η∂E∂IkOj=ηδkOj

现在我们需要求δk的值

δk=−∂E∂Ok∂Ok∂Ik

考虑到输出层的第k个节点的输入和输出的关系为:Ok=f(Ik)

∂E∂Ok=−(yk−Ok)

∂Ok∂Ik=f′(Ik)=1−f(Ik)2=1−Ok2

所以

δk=(1−Ok2)(yk−Ok)

因此,隐含层到输出层的连接权值的修正公式为:

Δwjk=nδkOj=ηOj(1−Ok2)(yk−Ok)

对于隐含层:

Δwij=−η∂E∂wij=−η∂E∂Ij∂Ij∂wij=ηδjOi

δj=−∂E∂Ij=−∂E∂Oj∂Oj∂Ij

∂E∂Oj=∑k=1L∂E∂Ik∂Ik∂Oj=∑k=1L∂E∂Ik∂∂Oj(∑j=0M(wjkOj))=−∑k=1Lδkwjk

考虑到输出层的第k个节点的输入和输出的关系为:Oj=f(Ij)

∂Oj∂Ij=f′(Ij)=1−f(Ij)2=1−Oj2

那么:

δj=(1−Oj2)∑k=1Lδkwjk

因此,输入层到隐含层的连接权值的修正公式为:

Δwij=ηδjOi=ηOi(1−Oj2)∑k=1Lδkwjk

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2201_75761617

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值