iris数据集的贝叶斯分类.doc

上传人:b****2 文档编号:1256960 上传时间:2022-10-19 格式:DOC 页数:9 大小:154.50KB
下载 相关 举报
iris数据集的贝叶斯分类.doc_第1页
第1页 / 共9页
iris数据集的贝叶斯分类.doc_第2页
第2页 / 共9页
iris数据集的贝叶斯分类.doc_第3页
第3页 / 共9页
iris数据集的贝叶斯分类.doc_第4页
第4页 / 共9页
iris数据集的贝叶斯分类.doc_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

iris数据集的贝叶斯分类.doc

《iris数据集的贝叶斯分类.doc》由会员分享,可在线阅读,更多相关《iris数据集的贝叶斯分类.doc(9页珍藏版)》请在冰豆网上搜索。

iris数据集的贝叶斯分类.doc

IRIS数据集的Bayes分类实验

一、实验原理

1)概述

模式识别中的分类问题是根据对象特征的观察值将对象分到某个类别中去。

统计决策理论是处理模式分类问题的基本理论之一,它对模式分析和分类器的设计有着实际的指导意义。

贝叶斯(Bayes)决策理论方法是统计模式识别的一个基本方法,用这个方法进行分类时需要具备以下条件:

Ø各类别总体的分布情况是已知的。

Ø要决策分类的类别数是一定的。

其基本思想是:

以Bayes公式为基础,利用测量到的对象特征配合必要的先验信息,求出各种可能决策情况(分类情况)的后验概率,选取后验概率最大的,或者决策风险最小的决策方式(分类方式)作为决策(分类)的结果。

也就是说选取最有可能使得对象具有现在所测得特性的那种假设,作为判别的结果。

常用的Bayes判别决策准则有最大后验概率准则(MAP),极大似然比准则(ML),最小风险Bayes准则,Neyman-Pearson准则(N-P)等。

2)分类器的设计

对于一个一般的c类分类问题,其分类空间:

表特性的向量为:

其判别函数有以下几种等价形式:

a),

b)

c)

d)

3)IRIS数据分类实验的设计

ØIRIS数据集:

一共具有三组数据,每一组都是一个单独的类别,每组有50个数据,每个数据都是一个四维向量。

其分类空间为:

表特性的向量为:

Ø实验目的:

利用Bayes判别准则对三组数据进行分类,希望能够尽量准确的判断出从IRIS数据集中选取的样本所属的类别。

Ø实验设计思路:

将每个数据看作是一个具有4维特征的观察样本

假设每类数据的每维都的分别服从正态分布即

并且两两独立。

由数理统计理论可知,样本均值和修正方差分别为和的无偏估计量,故可近似为求得和为:

贝叶斯决策规则选取:

由于不同维度数据两两独立,故其中:

另让门限值:

其中:

和为所选待分类样本j类数据和i类的个数,属于先验知识。

比较与门限值的大小判断样本所属类别

最后计算分类的正确率

Ø

二、实验过程

1)求取每类数据的每个分量的均值和修正方差数代码如下:

sum=zeros(3,4);

sd=zeros(3,4);

forj=1:

1:

4

fori=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);

end

end

sum=sum/50;

$$sum=sum/20;$$

forj=1:

1:

4

fori=1:

1:

50

sd(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;

end

end

sd=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];

end

if((mode1(1,1)~=0)&&(mode1(1,2)==0)&&(mode1(1,3)~=0))

compare=[1,3];

end

if((mode1(1,1)==0)&&(mode1(1,2)~=0)&&(mode1(1,3)~=0))

compare=[2,3];

end

compare1=compare(1,1);

compare2=compare(1,2);

class=zeros(1,3);

la=zeros(1,4);

lb=zeros(1,4);

fori=1:

1:

dimen

ifsamples(i,5)==1

class(1,1)=class(1,1)+1;

end

ifsamples(i,5)==2

class(1,2)=class(1,2)+1;

end

ifsamples(i,5)==3

class(1,3)=class(1,3)+1;

end

end

n=class(1,compare2)/class(1,compare1)

fori=1:

1:

dimen

la(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:

4

if(mode2(1,j)==0)

la(1,j)=1;

lb(1,j)=1;

end

end

lx=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>=n

clfresult(i,2)=compare1;

else

clfresult(i,2)=compare2;

end

end

accuracyrate=0;

fori=1:

1:

dimen

ifclfresult(i,2)~=samples(i,5)

accuracyrate=accuracyrate+1;

end

end

accuracyrate=accuracyrate/dimen;

end

该函数有共有两个输出量,六个输入参数。

其中各个参数的规定如下:

Samples:

一个Dimen×5的矩阵,Dimen是选取样本的数量,矩阵前4列存放样本的4维数据,最后一列存放相应行样本真实的类别数(1,2,3)。

Dimen:

选取样本的数量。

Sum:

数据集的均值参数阵。

Sd:

数据集的修正方差参数阵。

Mode1:

模式选择参数1,它是一个3维的行向量:

其中分别对应数据集的三个类别,当不为零时,就在决策域中添加第i类。

总共有三种模式:

在第一类和第二类中进行判别

在第一类和第三类中进行判别

在第二类和第二类中进行判别

Mode2:

模式选择参数2,它是一个4维德行向量:

其中分别对应数据集的4个维度分量,当不为零时,第i个维度的分量就作为判别分类的依据进行考虑,为零时,则第i个维度的分量忽略。

Mode2共有多种模式15种模式。

例如:

表示第二维的数据特征不参与分类。

对于两个输出参数:

Clfresult:

是一个3×Dimen的矩阵,输出对每个数据的分类结果,并显示其真实所属类别和在Samples中的序号。

Accuracyrate:

输出Bayes分类的正确率。

3)选定不同的样本组合与特征的组合,调用bayesclassifier函数进行分类。

三、实验结果与分析

1)实验结果:

Ø利用每类50个数据求出相应的均值和修正方差作为正态分布参数。

并将每类中所有的50个数据全部拿来分类,dimen=100结果为(分类的正确率):

Mode1

Mode2

一类(50)

二类(50)

一类(50)

三类(50)

二类(50)

三类(50)

(1,0,0,0)

0.89

0.95

0.70

(0,1,0,0)

0.83

0.75

0.58

(0,0,1,0)

1

1

0.93

(0,0,0,1)

1

1

0.94

(1,1,0,0)

0.99

0.99

0.68

(1,0,1,0)

1

1

0.87

(1,0,0,1)

1

1

0.94

(0,1,1,0)

1

1

0.88

(0,1,0,1)

1

1

0.92

(0,0,1,1)

1

1

0.94

(1,1,1,0)

1

1

0.82

(1,1,0,1)

1

1

0.92

(1,0,1,1)

1

1

0.95

(0,1,1,1)

1

1

0.94

(1,1,1,1)

1

1

0.94

Ø利用每类的20个数据求出相应的均值和修正方差作为正态分布参数。

并将每类中另外的30个数据拿来分类,dimen=60结果为(分类的正确率):

Mode1

Mode2

一类(30)

二类(30)

一类(30)

三类(30)

二类(30)

三类(30)

(1,0,0,0)

0.9167

0.9833

0.7167

(0,1,0,0)

0.8667

0.75

0.60

(0,0,1,0)

1

1

0.9167

(0,0,0,1)

1

1

0.9167

(1,1,0,0)

0.9833

1

0.70

(1,0,1,0)

1

1

0.8667

(1,0,0,1)

1

1

0.9333

(0,1,1,0)

1

1

0.8667

(0,1,0,1)

1

1

0.9000

(0,0,1,1)

1

1

0.9333

(1,1,1,0)

1

1

0.8167

(1,1,0,1)

1

1

0.9333

(1,0,1,1)

1

1

0.9500

(0,1,1,1)

1

1

0.9333

(1,1,1,1)

1

1

0.9500

Ø利用每类的20个数据求出相应的均值和修正方差作为正态分布参数。

分别在第二类中取20个,10个和5个数据,在第三类中固定取30个数据,放在一起进行分类,结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1