IRIS数据集的Bayes分类实验一、实验原理1)概述模式识别中的分类问题是根据对象特征的观察值将对象分到某个类别中去。统计决策理论是处理模式分类问题的基本理论之一,它对模式分析和分类器的设计有着实际的指导意义。贝叶斯(Bayes)决策理论方法是统计模式识别的一个基本方法,用这个方法进行分类时需要具备以下条件:各类别总体的分布情况是已知的。要决策分类的类别数是一定的。其基本思想是:以Bayes公式为基础,利用测量到的对象特征配合必要的先验信息,求出各种可能决策情况(分类情况)的后验概率,选取后验概率最大的,或者决策风险最小的决策方式(分类方式)作为决策(分类)的结果。也就是说选取最有可能使得对象具有现在所测得特性的那种假设,作为判别的结果。常用的Bayes判别决策准则有最大后验概率准则(MAP),极大似然比准则(ML),最小风险Bayes准则,Neyman-Pearson准则(N-P)等。2)分类器的设计对于一个一般的c类分类问题,其分类空间:c表特性的向量为:Tdxxxx,,,21其判别函数有以下几种等价形式:a)ijiwwijcjwwxwPxwP,且,,,2,11,b)ijjiwwijcjwPwxpwPwxp,且,,,2,1ic)iijjiwwijcjwPwPwxpwxpxl,且,,,2,1d)ijjiiwwijcjwPwxnpwPwxp,且,,,2,1lnlnln3)IRIS数据分类实验的设计IRIS数据集:一共具有三组数据,每一组都是一个单独的类别,每组有50个数据,每个数据都是一个四维向量。其分类空间为:321,,表特性的向量为:Txxxxx4321,,,实验目的:利用Bayes判别准则对三组数据进行分类,希望能够尽量准确的判断出从IRIS数据集中选取的样本所属的类别。实验设计思路:将每个数据看作是一个具有4维特征的观察样本150,3,2,1,,,,4321ixxxxxTiiiii假设每类数据的每维都的分别服从正态分布即.3,2,1.4,3,2,1,2exp21)(22pjxxfwpjwpjwpjwpj其中,并且两两独立。由数理统计理论可知,样本均值和修正方差分别为和2的无偏估计量,故可近似为求得和2为:.3,2,1.4,3,2,1,pjXwpjwpjniwpjwpijwpjpjXXn122.3,2,1.4,3,2,1,11贝叶斯决策规则选取:wwijjwPwPwxpwxpxlijji,且,3,2,1由于不同维度数据两两独立,故其中:ijijxxwxfwxfwxfwxfwxpwxpxlqwpqwjjwpqwpqwiiwpqqjqqiqqjiji,3,2,1,2exp12exp141222241另让门限值:ijijwPwPij,3,2,1,NNij其中:jN和iN为所选待分类样本j类数据和i类的个数,属于先验知识。比较xl与门限值的大小判断样本所属类别最后计算分类的正确率二、实验过程1)求取每类数据的每个分量的均值和修正方差数代码如下:sum=zeros(3,4);sd=zeros(3,4);forj=1:1:4fori=1:1:50$$fori=1:1:20$$sum(1,j)=sum(1,j)+sample1(i,j);sum(2,j)=sum(2,j)+sample2(i,j);sum(3,j)=sum(3,j)+sample3(i,j);endendsum=sum/50;$$sum=sum/20;$$forj=1:1:4fori=1:1:50sd(1,j)=sd(1,j)+(sample1(i,j)-sum(1,j))^2;sd(2,j)=sd(2,j)+(sample2(i,j)-sum(2,j))^2;sd(3,j)=sd(3,j)+(sample3(i,j)-sum(3,j))^2;endendsd=sd/49;$$sd=sd/19;$$其中每类数据都有4组均值和修正方差,3类数据总共12组,分别存放在sum和sd这两个3×4的矩阵中。2)用一个函数来实现分类器的功能,代码如下function[clfresult,accuracyrate]=bayesclassifier(samples,dimen,sum,sd,mode1,mode2)clfresult=zeros(dimen,2);if((mode1(1,1)~=0)&&(mode1(1,2)~=0)&&(mode1(1,3)==0))compare=[1,2];endif((mode1(1,1)~=0)&&(mode1(1,2)==0)&&(mode1(1,3)~=0))compare=[1,3];endif((mode1(1,1)==0)&&(mode1(1,2)~=0)&&(mode1(1,3)~=0))compare=[2,3];endcompare1=compare(1,1);compare2=compare(1,2);class=zeros(1,3);la=zeros(1,4);lb=zeros(1,4);fori=1:1:dimenifsamples(i,5)==1class(1,1)=class(1,1)+1;endifsamples(i,5)==2class(1,2)=class(1,2)+1;endifsamples(i,5)==3class(1,3)=class(1,3)+1;endendn=class(1,compare2)/class(1,compare1)fori=1:1:dimenla(1,1)=1/sqrt(sd(compare1,1))*exp(-(samples(i,1)-sum(compare1,1))^2/(2*sd(compare1,1)));la(1,2)=1/sqrt(sd(compare1,2))*exp(-(samples(i,2)-sum(compare1,2))^2/(2*sd(compare1,2)));la(1,3)=1/sqrt(sd(compare1,3))*exp(-(samples(i,3)-sum(compare1,3))^2/(2*sd(compare1,3)));la(1,4)=1/sqrt(sd(compare1,4))*exp(-(samples(i,4)-sum(compare1,4))^2/(2*sd(compare1,4)));lb(1,1)=1/sqrt(sd(compare2,1))*exp(-(samples(i,1)-sum(compare2,1))^2/(2*sd(compare2,1)));lb(1,2)=1/sqrt(sd(compare2,2))*exp(-(samples(i,2)-sum(compare2,2))^2/(2*sd(compare2,2)));lb(1,3)=1/sqrt(sd(compare2,3))*exp(-(samples(i,3)-sum(compare2,3))^2/(2*sd(compare2,3)));lb(1,4)=1/sqrt(sd(compare2,4))*exp(-(samples(i,4)-sum(compare2,4))^2/(2*sd(compare2,4)));forj=1:1:4if(mode2(1,j)==0)la(1,j)=1;lb(1,j)=1;endendlx=la(1,1)*la(1,2)*la(1,3)*la(1,4)/(lb(1,1)*lb(1,2)*lb(1,3)*lb(1,4))clfresult(i,1)=i;iflx=nclfresult(i,2)=compare1;elseclfresult(i,2)=compare2;endendaccuracyrate=0;fori=1:1:dimenifclfresult(i,2)~=samples(i,5)accuracyrate=accuracyrate+1;endendaccuracyrate=accuracyrate/dimen;end该函数有共有两个输出量,六个输入参数。其中各个参数的规定如下:Samples:一个Dimen×5的矩阵,Dimen是选取样本的数量,矩阵前4列存放样本的4维数据,最后一列存放相应行样本真实的类别数(1,2,3)。Dimen:选取样本的数量。Sum:数据集的均值参数阵。Sd:数据集的修正方差参数阵。Mode1:模式选择参数1,它是一个3维的行向量:321,,1mode其中3,2,1,ii分别对应数据集的三个类别,当3,2,1,ii不为零时,就在决策域中添加第i类。总共有三种模式:0,1,11mode在第一类和第二类中进行判别1,0,11mode在第一类和第三类中进行判别1,1,01mode在第二类和第二类中进行判别Mode2:模式选择参数2,它是一个4维德行向量:4321,,,2mode其中4,3,2,1,ii分别对应数据集的4个维度分量,当3,2,1,ii不为零时,第i个维度的分量就作为判别分类的依据进行考虑,3,2,1,ii为零时,则第i个维度的分量忽略。Mode2共有多种模式15种模式。例如:1,1,0,12mode表示第二维的数据特征不参与分类。对于两个输出参数:Clfresult:是一个3×Dimen的矩阵,输出对每个数据的分类结果,并显示其真实所属类别和在Samples中的序号。Accuracyrate:输出Bayes分类的正确率。3)选定不同的样本组合与特征的组合,调用bayesclassifier函数进行分类。三、实验结果与分析1)实验结果:利用每类50个数据求出相应的均值和修正方差作为正态分布参数。并将每类中所有的50个数据全部拿来分类,dimen=100结果为(分类的正确率):Mode1Mode2一类(50)二类(50)一类(50)三类(50)二类(50)三类(50)(1,0,0,0)0.890.950.70(0,1,0,0)0.830.750.58(0,0,1,0)110.93(0,0,0,1)110.94(1,1,0,0)0.990.990.68(1,0,1,0)110.87(1,0,0,1)110.94(0,1,1,0)110.88(0,1,0,1)110.92(0,0,1,1)110.94(1,1,1,0)110.82(1,1,0,1)110.92(1,0,1,1)110.95(0,1,1,1)110.94(1,1,1,1)110.94利用每类的20个数据求出相应的均值和修正方差作为正态分布参数。并将每类中另外的30个数据拿来分类,dimen=60结果为(分类的正确率):Mode1Mode2一类(30)二类(30)一类(30)三类(30)二类(30)三类(30)(1,0,0,0)0.91670.98330.7167(0,1,0,0)0.86670.750.60(0,0,1,0)110.9167(0,0,0,1)110.9167(1,1,0,0)0.983310.70(1,0,1,0)110.8667(1,0,0,1)110.9333(0,1,1,0)110.8667(0,1,0,1)110.9000(0,0,1,1)110.9333(1,1,1,0)110.8167(1,1,0,1)110.9333(1,0,1,1)110.9500(0,1,1,1)110.9333(1,1,1,1)110.9500利用每类的20个数据