模式识别实验报告
5103班 3115390014
魏双
基于贝叶斯方法对鸢尾花数据的分类
一、实验原理
贝叶斯准则又称为最大后验概率,假定一个两类问题,先验概率分别为P(?1)和P(?2)。令X为n维向量,X的类条件概率密度为p(X?1)和p(X?2)分别表示的。由全概率公式,可知观测样本X出现的全概率密度为:
p(X)?p(X?1)P(?1)?p(X?2)P(?2) (1)
由贝叶斯公式,在观测样本X出现的情况下,X属于两个类别?1和?2的后验概率分别可表示为:
P(?1X)?p(X?1)P(?1) p(X?2)P(?2)
P(?2X)?p(X)p(X)这里,p(X)由式(1)给出。如果规定把观测样本X判归后验概率较大的类别,则相应的判决规则可表示为:
P(?1X)?P(?2X)?P(?2X)?P(?1X)?X??1X??2
上述规则可进一步表示为:
p(X?1)P(?1)?p(X?2)P(?2)?X??1p(X?2)P(?2)?p(X?1)P(?1)?X??2
对于具有多个特征参数的样本150个(本实验的 IRIS 数据为 n=4 维)。实验中所用的
数据集已经分成三类,假设本实验所使用的 IRIS 鸢尾花数据中各类数据服从正态分布,则概率密度函数为:
鸢尾花数据集包含了150个样本,分别是山鸢尾,变色鸢尾和维吉尼亚鸢尾。四个特征被用作样本的定量分析,分别是花瓣的长度和宽度。实验中所用的数据集已经分成三类,第一组为山鸢尾,第二组为变色鸢尾,第三组为维吉尼亚鸢尾。对于具有多个特征参数的样本,其正态分布的概率密度函数为:
11-1P(x)?exp{-(X-mean)B(X-mean)'}n122(2?)B2
其中X是n维的行向量,B是n*n维的协方差矩阵,B是B的行列式,mean是均值。
pi?p(X?i)P(?i)由其判决规则,
i?1,2,3
pi?pj?X??i即可对样本进行分类。
i?j
二、实验过程
(1)数据导入
导入data.txt 文件中数据,并将三类数据分别存储,每个数据都为一个4 维行特征向量。 close all; clear all;
clc;
A= load('data.txt'); B1=[A(1:5,:)]; B2=[A(51:56,:)]; B3=[A(101:105,:)]; (2)抽取数据分类计算
设置每组训练数据个数 NUM_train,从每类 50 个数据中随机抽取 NUM_train
个向量作为训练数据并存储,剩余数据作为测试样本存储。
N1=5;N2=5;N3=5;
Xp1=0.5; Xp2=0.5; Xp3=0.5; mean1= mean(B1); mean2= mean(B2); mean3= mean(B3);
var1=cov(B1); n1=inv(cov(B1)); k1= det(var1) ; var2=cov(B2); n2=inv(var2); k2= det(var2) ; var3=cov(B3); n3=inv(var3); k3= det(var3); (4)分类测试
一共分为三组(w1,w2)(w1,w3)(w2,w3),test=1代表(w1,w2)分类,test=2代表(w1,w3)分类,test=3代表(w2,w3)分类 ,针对某一训练数据 x 计算其判别函数Pi,比较两个值的大小,哪个最大,就可判断该数据属于哪一类。
G=[ A(6:50,:) ; A(106:150,:) ]; a=zeros(1,90); a1=zeros(1, 90); a2=zeros(1, 90); for i=1:1:90
p1=-0.5* (G(i,:)-mean1)*n1*(G(i,:)-mean1)'-0.5*log(k1)+log(Xp1); p2=-0.5* (G(i,:)-mean2)*n2*(G(i,:)-mean2)'-0.5*log(k2)+log(Xp2); p3=-0.5* (G(i,:)-mean3)*n3*(G(i,:)-mean3)'-0.5*log(k3)+log(Xp3); a1(i)=p1;a2(i)=p2; if p1>p2
a(i)=1; else
a(i)=2;
end
end
三、实验结果