贝叶斯最大后验概率准则对iris大数据地分类.docx
《贝叶斯最大后验概率准则对iris大数据地分类.docx》由会员分享,可在线阅读,更多相关《贝叶斯最大后验概率准则对iris大数据地分类.docx(25页珍藏版)》请在冰豆网上搜索。
贝叶斯最大后验概率准则对iris大数据地分类
1、实验目的
1.了解多元正态分布
2.对多元正态分布利用矩估计法进行参数估计,了解参数估计的过程
3.掌握利用贝叶斯最大后验概率准则对三类数据进行两两分类的方法
2、实验原理
Iris数据集共有三组,分别为setosa,versicolou和virginica,每一组都是一个单独的类别,此实验中,默认setosa为第一类,versicolou为第二类,virginica为第三类,每组50个数据,每个数据都是一个四维向量,且服从四维正态分布。
即类别空间为:
数据向量为:
2.1多元正态分布
随机向量X=的分布密度函数有如下形式:
其中为常量,为随机向量的均值向量,B为p*p的协方差矩阵,则称X服从p元正态分布,记为。
因此,对于多元正态分布而言,只需要确定均值向量和协方差矩阵即可确定概率密度函数。
2.2参数估计
由于三组数据均服从四维正态分布,首先要确定数据的具体分布,因此在分类之前,利用一部分实验数据进行训练,分别得到三组数据的四维正态分布参数。
即,分别为setosa,versicolou和virginica三组数据的参数。
实验中,参数估计采用矩估计法,即利用样本(训练数据)的均值向量和协方差矩阵作为总体的均值向量和协方差矩阵的估计值,进而得到每组数据的分布密度函数。
以第一组数据为例:
setosa中的数据服从均值为四维列向量,4*4维协方差矩阵B的四元正态分布。
均值向量和协方差矩阵的估计式为:
从第一类数据中选取部分数据按照上式进行训练,得到第一类数据的正态分布参数,因而可求得其密度函数。
三类数据都按照上公式,选取部分实验数据得出正态分布的均值向量和协方差矩阵。
进而得到自己的概率密度公式
2.3贝叶斯最大后验概率准则
利用贝叶斯准则对数据进行两两分类时,以贝叶斯公式为基础,利用测量到的对象特征配合必要的先验信息,求出两种可能分类情况的后验概率,选取后验概率大的,作为分类的结果。
即最大后验概率准则,也称最小错误概率准则。
以第一类和第二类为例,对这两组数据进行分类。
两组数据经过参数估计之后,分别得到条件概率密度,。
根据贝叶斯准则:
贝叶斯最大后验概率准则进行分类时,根据输入的列向量,分别计算两类的后验概率,判x为后验概率的大类别,即:
如果则判别x为类(第一类)即:
即:
因此根据最大后验概率准则判断x所属的类别,转变为比较似然比和阈值的大小。
实验中首先求得两类数据的条件概率密度和,关于先验概率,实验进行时,将待分类的两组数据合并放入一个100*4的矩阵中,每次随机选取待分类数据x,因此先验概率
故而,判别式(8)简化为:
因此,根据上式即可对输入向量x进行分类。
如果则判别x为类(第一类)同理
如果则判别x为类(第二类)
3、实验过程
实验中,根据实验原理,首先对两组数据分别进行训练,得到其四维正态分布的密度函数,再根据最大后验概率准则进行分类。
3.1参数估计
已知三组数据均为的四元正态分布,即
其中,为均值向量,B为协方差矩阵,和均为四维列向量。
根据式
(2)和(3)对每组数据的均值向量和协方差矩阵进行估计。
参数估计即选取部分数据进行训练,数据可以采用随机选取的方式,也可以从开始固定的选取若干数据进行训练。
同时,参与训练的数据多少也会影响最后的分类结果。
实验中尝试了不同的选取方法,结果如下:
(1)从前向后依次选取10个数据进行训练:
(2)从前向后依次选取15个数据进行训练:
(3)从前向后依次选取20个数据进行训练:
(4)从前向后依次选取25个数据进行训练:
(5)随机选取15个数据进行训练:
(6)随机选取20个数据进行训练:
3.2贝叶斯分类
学习分类时,本实验中,将待分类的两类数据合并为一个矩阵test,然后每次随机的从test矩阵中抽取一维向量进行分类判别。
因此先验概率满足
所以,实验中只需要根据估计的参数得出两类的概率密度函数
对于输入的列向量x带入上面两个公式中进行计算,则x归入概率大的一类。
下面以第一类和第二类分类为例进行说明:
实验中,
m:
表示参与训练的数据个数,进行分类学习时
t:
表示每次学习的次数,实验置为10000,即每次随机选取10000次x进行分类
test矩阵:
将待分类的两组数据合并为一个矩阵test,之后随机的从test矩阵中选择输入向量,保证先验概率相等
W向量:
表示随机选择的输入向量的位置,若W(i)<51则说明此时的输入向量来自第一类,W(i)>50则说明此时的输入向量来自第二类
set向量:
输入的x判别属于第一类,则将set的相应位置1,否则置0
ver向量:
输入的x判别属于第二类,则将ver的相应位置1,否则置0
最后比较W向量和set向量、ver向量,若选择于第一类(W(i)<51)也判别为第一类(set(i)=1),则说明判别正确。
第二类同理。
部分框图如下所示:
相应部分代码如下:
最后,统计set向量和ver向量中不为0的元素个数即在10000次学习分类时错误的次数。
进行分类实验时,考虑到两方面的影响:
(1)参数估计时训练样本的选取方式不同,分为固定选取样本和随机选取样本
(2)参数估计时选取的样本数目
同时,实验中,每次分类相当于进行10000次判别,由于选择输入矢量时具有随机性,因此针对同一m(m表示参与训练的样本数目),各进行10次实验进行比较。
3.2.1第一类与第二类(即setosa和versicolou)
(1)当训练样本从前向后固定选取时:
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
m=10
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
m=15
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
当训练样本固定选取时,当参与训练的样本个数分别为为6,10,15,均不会产生错误。
(2)当训练样本随机选取时
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
1824
702
0
213
0
109
2027
495
1904
0
错误率
18.24%
7.02%
0
2.13%
0
1.09%
20.27%
4.95%
19.04%
0
m=10
错误个数
0
0
0
0
0
0
109
0
0
0
错误率
0
0
0
0
0
0
1.09%
0
0
0
m=15
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
当训练样本随机选取时:
m=6时平均错误率为:
7.274%
m=10时平均错误率为:
0.109%
m=15时平均错误率为:
0
3.2.2第一类与第三类(即setosa和virginica)
(1)当训练样本从前向后固定选取时:
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
m=10
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
m=15
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
当训练样本固定选取时,当参与训练的样本个数分别为为6,10,15,均不会产生错误。
(2)当训练样本随机选取时
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
0
3997
0
1025
0
0
720
950
0
0
错误率
0
39.97%
0
10.25%
0
0
7.2%
9.5%
0
0
m=10
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
m=15
错误个数
0
0
0
0
0
0
0
0
0
0
错误率
0
0
0
0
0
0
0
0
0
0
当训练样本随机选取时:
m=6时平均错误率为:
6.634%
m=10时平均错误率为:
0
m=15时平均错误率为:
0
3.2.3第二类与第三类(即versicolou和virginica)
(1)当训练样本从前向后固定选取时:
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
410
397
413
369
389
409
430
416
387
363
错误率
4.1%
3.97%
4.13%
3.69%
3.89%
4.09%
4.3%
4.16%
3.87%
3.63%
m=10
错误个数
626
622
561
613
677
610
605
614
613
555
错误率
6.26%
6.22%
5.61%
6.13%
6.77%
6.1%
6.05%
6.14%
6.13%
5.55%
m=15
错误个数
399
396
409
399
355
434
431
393
406
416
错误率
3.99%
3.96%
4.09%
3.99%
3.55%
4.34%
4.31%
3.93%
4.06%
4.16%
m=50
错误个数
325
285
323
298
299
302
306
315
288
308
错误率
3.25%
2.85%
3.23%
2.98%
2.99%
3.02%
3.06%
3.15%
2.88%
3.08%
当训练样本固定选取时:
m=6时平均错误率为:
3.983%
m=10时平均错误率为:
6.096%
m=15时平均错误率为:
4.038%
m=50时平均错误率为:
3.049%
(2)当训练样本随机选取时
次数
1
2
3
4
5
6
7
8
9
10
m=6
错误个数
637
3478
2000
504
1510
891
4250
2046
1000
1185
错误率
6.37%
34.78%
20%
5.04%
15.1%
8.91%
42.5%
20.46%
10%
11.85%
m=10
错误个数
901
984
889
1260
382
1136
1130
959
780
920
错误率
9.01%
9.84%
8.89%
12.6%
3.82%
11.36%
11.3%
9.59%
7.8%
9.2%
m=15
错误个数
478
328
726
531
100
657
395
286
740
692
错误率
4.78%
3.28%
7.26%
5.31%
1%
6.57%
3.95%
2.86%
7.4%
6.92%
m=50
错误个数
408
221
319
374
88
403
444
310
213
202
错误率
4.08%
2.21%
3.19%
3.74%
0.88%
4.03%
4.44%
3.1%
2.13%
2.02%
当训练样本随机选取时:
m=6时平均错误率为:
17.471%
m=10时平均错误率为:
9.341%
m=15时平均错误率为:
4.933%
m=50时平均错误率为:
2.982%
4、实验分析
实验中,第一部分为参数估计,从实验中可得,以训练样本固定选取,样本个数m=20为例:
从中可以看出,第一类和第二类,第一类和第三类相比较而言,均值向量和协方差矩阵均相差较大,即正态分布的形式差距较大,因此第一类较容易和其余两类分类。
相比较而言,第二类和第三类的均值向量和协方差矩阵相近,因此其对应的正态分布相似,所以第二组数据和第三组会比较难区分,这一点在后面的实验中也有反映。
实验第二部分,在进行分类学习时,得到在样本选取方式不同和样本数目不同的情况下的分类错误率,汇总如下:
(1)
表一第一类与第二类分类结果
第一类与第二类
m=6
m=10
m=15
固定样本参数估计
0
0
0
随机样本参数估计
7.274%
0.109%
0
从中可以看出,当参数估计的样本按照顺序固定选取时,在很小的样本数目下即可得到很好的分类结果。
当样本随机选取时,在样本数目较少时会有一定的错误率,但是随着样本数目的增加,错误率降低。
(2)
表二第一类与第三类分类结果
第一类与第三类
m=6
m=10
m=15
固定样本参数估计
0
0
0
随机样本参数估计
6.634%
0
0
从中可以得到与上面相似的结论,同时,比较表一和表二可以发现,在随机样本参数估计的情况下,表二所展示的错误率更低,说明相较第二类数据而言,第一类与第三类数据的差别更大,更易分类。
(3)
表三第二类与第三类分类结果
第二类与第三类
m=6
m=10
m=15
m=50
固定样本参数估计
3.983%
6.096%
4.038%
3.049%
随机样本参数估计
17.471%
9.341%
4.933%
2.982%
从中可以看出,第二类数据与第三类数据不论在什么情况下,分类错误率都较大。
甚至当用所有的数据进行参数估计时(m=50),分类结果仍然会有错误。
由此可见,这两组数据较为相似,难以分类。
这一点也从上面计算其正态分布的的参数可以想见。
5、实验结果
实验得出,第一组数据与第二组数据较易分类,当训练样本数目在10左右时就能得到较高的正确率,进而当训练样本数目为15时几乎不出错。
第一组数据与第二组数据更容易分类,当训练样本数目为10时几乎就不出错。
但同时,第二组数据由于与第三组数据过于相似,所以很难分类。