- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IRIS数据集的Bayes分类实验
实验原理
概述
模式识别中的分类问题是根据对象特征的观察值将对象分到某个类别中去。统计决策理论是处理模式分类问题的基本理论之一,它对模式分析和分类器的设计有着实际的指导意义。
贝叶斯(Bayes)决策理论方法是统计模式识别的一个基本方法,用这个方法进行分类时需要具备以下条件:
各类别总体的分布情况是已知的。
要决策分类的类别数是一定的。
其基本思想是:以Bayes公式为基础,利用测量到的对象特征配合必要的先验信息,求出各种可能决策情况(分类情况)的后验概率,选取后验概率最大的,或者决策风险最小的决策方式(分类方式)作为决策(分类)的结果。也就是说选取最有可能使得对象具有现在所测得特性的那种假设,作为判别的结果。
常用的Bayes判别决策准则有最大后验概率准则(MAP),极大似然比准则(ML),最小风险Bayes准则,Neyman-Pearson准则(N-P)等。
分类器的设计
对于一个一般的c类分类问题,其分类空间:
表特性的向量为:
其判别函数有以下几种等价形式:
,
IRIS数据分类实验的设计
IRIS数据集:
一共具有三组数据,每一组都是一个单独的类别,每组有50个数据,每个数据都是一个四维向量。
其分类空间为:
表特性的向量为:
实验目的:
利用Bayes判别准则对三组数据进行分类,希望能够尽量准确的判断出从IRIS数据集中选取的样本所属的类别。
实验设计思路:
将每个数据看作是一个具有4维特征的观察样本
假设每类数据的每维都的分别服从正态分布即
并且两两独立。
由数理统计理论可知,样本均值和修正方差分别为和的无偏估计量,故可近似为求得和为:
贝叶斯决策规则选取:
由于不同维度数据两两独立,故其中:
另让门限值:
其中:和为所选待分类样本j类数据和i类的个数,属于先验知识。
比较与门限值的大小判断样本所属类别
最后计算分类的正确率
实验过程
求取每类数据的每个分量的均值和修正方差数代码如下:
sum=zeros(3,4);
sd=zeros(3,4);
for j=1:1:4
for i=1:1:50
$$ for i=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;$$
for j=1:1:4
for i=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的矩阵中。
用一个函数来实现分类器的功能,代码如下
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);
for i=1:1:dimen
if samples(i,5)==1
class(1,1)=class(1,1)+1;
end
if samples(i,5)==2
class(1,2)=class(1,2)+1;
end
if samples(i,5)==3
class(1,3)=class(1,3)+1;
end
end
n=class(1,compare2)/class(1,compare1)
fo
文档评论(0)