模式识别上机文档格式.docx

上传人:b****6 文档编号:20169148 上传时间:2023-01-17 格式:DOCX 页数:13 大小:507.08KB
下载 相关 举报
模式识别上机文档格式.docx_第1页
第1页 / 共13页
模式识别上机文档格式.docx_第2页
第2页 / 共13页
模式识别上机文档格式.docx_第3页
第3页 / 共13页
模式识别上机文档格式.docx_第4页
第4页 / 共13页
模式识别上机文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

模式识别上机文档格式.docx

《模式识别上机文档格式.docx》由会员分享,可在线阅读,更多相关《模式识别上机文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

模式识别上机文档格式.docx

或各类出现的先验概率P(ωi)和类条件概率密度函数p(x|ωi)已知

2、两类分类的最小错误率Bayes分类决策规则的后验概率形式:

设N个样本分为两类ω1,ω2。

每个样本抽出n个特征,

x=(x1,x2,x3,…,xn)T

其中,P(ωi|x)为状态后验概率。

由Bayes公式:

两类分类的贝叶斯决策函数:

三实例说明:

一数据集有两类,每个样本有两个特征,类别1(class1.txt文件)含有150个样本,类别2(class2.txt文件)含有250个样本(.txt文件可以直接在Matlab中读入),分别取类别1的前100个和类别2的前200个样本作为训练样本,剩下的作为测试样本。

要求:

(1)根据基于最小错误率的贝叶斯决策理论设计分类器;

(2)叙述实验具体步骤,给出所设计的分类器对训练样本和测试样本的错误率;

(3)提交的作业需包含Matlab程序代码

(4)绘制分类结果(包含决策边界)的图像

1、实验原理

多元正太分布的概率密度函数由下式定义

由最小错误概率判决规则,可得采用如下的函数作为判别函数

这里,

为类别

发生的先验概率,

的类条件概率密度函数,而N为类别数。

设类别

,i=1,2,……,N的类条件概率密度函数

,i=1,2,……,N服从正态分布,即有

~

,那么上式就可以写为

由于对数函数为单调变化的函数,用上式右端取对数后得到的新的判别函数替代原来的判别函数

不会改变相应分类器的性能。

因此,可取

显然,上式中的第二项与样本所属类别无关,将其从判别函数中消去,不会改变分类结果。

这样,判别函数

可简化为以下形式

2、实验步骤

(1)求出两类样本的均值

(2)求每一类样本的协方差矩阵

式中,l代表样本在类中的序号,其中

代表

类的第l个样本,第j个特征值;

类的

个样品第j个特征的平均值

类的第l个样品,第k个特征值;

个样品第k个特征的平均值。

类的协方差矩阵为

(3)计算出每一类的协方差矩阵的逆矩阵

以及协方差矩阵的行列式

(4)求出每一类的先验概率

(5)将各个数值代入判别函数

判别边界为

3、实验结果

根据matlab的计算结果可得

类别1训练样本的错误率为4%,类别2训练样本的错误率为5%;

类别1测试样本的错误率为6%,类别2训练样本的错误率为4%。

实验图

图1训练样本分类结果

如上图所示,“.”代表类别1的训练样本,“*”代表类别2的训练样本,绿线为决策边界;

图2测试样本分类结果

如上图所示,“.”代表类别1的测试样本,“*”代表类别2的测试样本,绿线为决策边界;

4、实验程序代码

functiong=pattern(x,y)

%clear;

S1=load('

e:

\lwz\class1.txt'

);

%原始数据class1导入S1

S2=load('

\lwz\class2.txt'

%原始数据class2导入S2

fori=1:

100

forj=1:

2

type1(i,j)=S1(i,j);

%将class1的前100个数据导入type1当中,作为训练样本

end

end

200

type2(i,j)=S2(i,j);

%将class2的前200个数据导入type2当中,作为训练样本

%求训练样本的均值

sumx1=sum(type1,1);

meanx1=sumx1(1,1)/100;

meany1=sumx1(1,2)/100;

sumx2=sum(type2,1);

meanx2=sumx2(1,1)/200;

meany2=sumx2(1,2)/200;

%求协方差矩阵

z1(2,2)=0;

z1(1,1)=z1(1,1)+(type1(i,1)-meanx1)^2;

z1(1,2)=z1(1,2)+(type1(i,1)-meanx1)*(type1(i,2)-meany1);

z1(2,1)=z1(2,1)+(type1(i,2)-meany1)*(type1(i,1)-meanx1);

z1(2,2)=z1(2,2)+(type1(i,2)-meany1)^2;

z1(1,1)=z1(1,1)/99;

z1(1,2)=z1(1,2)/99;

z1(2,1)=z1(2,1)/99;

z1(2,2)=z1(2,2)/99;

z2(2,2)=0;

z2(1,1)=z2(1,1)+(type2(i,1)-meanx2)^2;

z2(1,2)=z2(1,2)+(type2(i,1)-meanx2)*(type2(i,2)-meany2);

z2(2,1)=z2(2,1)+(type2(i,2)-meany2)*(type2(i,1)-meanx2);

z2(2,2)=z2(2,2)+(type2(i,2)-meany2)^2;

z2(1,1)=z2(1,1)/199;

z2(1,2)=z2(1,2)/199;

z2(2,1)=z2(2,1)/199;

z2(2,2)=z2(2,2)/199;

z1_inv=[];

z1_det=[];

z2_det=[];

z1_inv=inv(z1);

%求协方差矩阵的逆

z2_inv=inv(z2);

%求协方差矩阵的行列式

z1_det=det(z1);

z2_det=det(z2);

%求出两类样本的先验概率

p1=100/300;

p2=200/300;

symsxy;

g=(-0.5)*[x-meanx1,y-meany1]*z1_inv*[x-meanx1;

y-meany1]+log(abs(z1_det))*0.5+log(p1)-((-0.5)*[x-meanx2,y-meany2]*z2_inv*[x-meanx2;

y-meany2]+log(abs(z2_det))*0.5+log(p2))

%画图命令

ezplot(pattern);

fori=101:

150

plot(S1(i,1),S1(i,2),'

.'

holdon

fori=201:

250

plot(S2(i,1),S2(i,2),'

*'

End

最近邻分类器:

ClickandClassify

最近邻分类器在eCognition中指需要用户指定训练样本的分类法,与成员函数分类器相区别。

eCognition用“ClickandClassify”

来形容其操作简便。

用户手册中推荐的针对这种指定训练样本的分类方法的分类策略是:

1、先选定少量图斑(对象)作为样本,一开始选定的每一类的样本数为1-3个,选完少量样本后就可以进行第一次分类;

2、然后不断重复以下步骤,直到得出满意结果:

①、纠正那些被错分的或未被分类的(unclassified)图斑,指定正确类别后,作为样本对象添加到训练样本集中(要小心操作,

确保无误);

②进行分类。

【注意】:

1、有些时候,新的样本对象的加入会显著影响到分类结果,有可能原来正确的分类结果,在调整、纠正加入新的样本对象后,

许多图斑反而从正确的分类划归为错误的类别了,这时候也不要担心,还是继续重复上面的步骤,重复操作……这样进行下去

以后,就能逐步在特征空间中建立起区分各类别的边界,即使这些类别在特征空间中的分布是不规则的且不连续的(离散的),

最近邻函数也能对付。

2、利用ClickandClassify的方法,用户可能很快就得到了满意的分类结果,也有可能你达到了所选择的特征空间(注意:

特征空间也是用户自己可以定义的)所能区分的极限,再添加新的训练样本也无济于事了,分类结果也不会有显著改善了,这

也没有关系,咱们可以利用这个得到的分类结果作为下一步“基于上下文信息的分类”的基础数据,在类别层次结构(ClassHierarchy)

里面添加子类,以作进一步的细分。

Tour1就是这样的一个例子。

二、关于最近邻函数

1、标准最近邻(SNN)与普通最近邻(NN)的差别:

两者的区别在于它们的作用域不同。

NearestNeighbor的特征空间可以为

每个类别单独定义,即“class-specific”,而StandardNearestNeighbor则不然,整个Project,SNN的特征空间的定义是唯一的,

所有用到SNN的类别,它们的SNN的特征空间全是一样的,而且对每一个类别不可能定义一个以上的标准最邻近函数。

SNN和NN的

特征空间中一般都不涉及“Class-relatedfeatures”,因为它们需要的是一个绝对的参考系,而不是相对的,避免“循环依赖”现象的出现

即使用到类相关特征,也会受到如下限制:

(东阳何生的学习笔记)

①、如果一个类别的定义中用到了最邻近函数,而这个最邻近函数的特征空间中利用了“Class-relatedfeatures”,那么这个类别

不能用“Similarityof”特征;

②、如果一个类别的定义中用到了最邻近函数,而这个最邻近函数的特征空间中利用了“Class-relatedfeatures”,那么这个类别

不能有子类。

即不能生育或是丁克一族,相当于二叉树中的“叶子节点”,所以这些类别也叫“叶子类别”;

③、如果一个类别的定义中用到了最邻近函数,而这个最邻近函数的特征空间中利用了“Class-relatedfeatures”,那么

“Class-relatedfeatures”中所参考的类别不能是它自己或其父类。

2、如果在一个ClassHierarchy中用到了SNN或NN,那么,当保存ClassHierarchy文件的时候,它们所定义的特征空间也同时

被保存在这个类层次结构文件中,但是,用户选择的训练样本并没有被保存,也就是说,如果调入一个dkb文件,以前选的训练

样本是不包括在这个文件中的。

3、如果事先定义好了一个ClassHierarchy(父类子类统统定义完毕),然后去选择训练样本,那么,用户选择的子类的训练样本

自动也算是其父类的训练样本,当然,用户也可以单独为父类指定其训练样本。

4、用户手册一再建议,分类时先为每一类仅仅选择少量的样本,1-3个足矣,然后分类,出来结果后,再添加错分或漏分的新样

本,再分类,再调整……逐步调整,直至得到最佳分类结果。

5、在以前的学习笔记中我曾经认为TTAMask和Samples是一回事,因为两者之间可以互相转换(0008:

城市草地versus乡村草地),

现在看来,这点认识还得作一点修正,它们之间还是有一点细微的差别的,因为TTAMask有可能是从其他来源输入到

eCognition中来的,比如ArcGIS或ERDAS中转进来的数据,这时候,它的边界就不会跟eCognition分割生成的图斑的边界完全吻合,

因此,当“createsamplesfromTTAMask”的时候,就会弹出一个对话框让用户设置一个参数,默认值是0.75,表示如果一个图斑75%

的面积被TTAMask所定义的某一个类别的图斑所覆盖,那么它就属于这个类别的训练样本。

6、NNFunctionSlope(东阳何生的学习笔记)

感觉跟ENVI的光谱角制图(SpectralAngleMapper)里面光谱角的概念差不多。

Slope是一个阈值,它越大就越能和稀泥,有容乃

大,把性质差别很大的图斑划分到一个类别里面;

反之,Slope越小,则分得越精细,但是导致的问题就是会出现很多未被分类的

图斑(unclassifiedimageobjects),即通常所说的“漏分现象”,但是分类结果的稳定性会很好。

Slope的默认值是0.2,用户可以

自行定义。

 

7、特征空间优化(FeatureSpaceOptimization)

先为每个类别选择训练样本,选好之后,根据训练样本来计算这个类间可分性矩阵(ClassSeparationDistanceMatrix

ForSelectedFeatures)。

特征空间优化给用户提供了一个挑选、组合用来区分类别的最佳特征的有效工具,能根据

选定的样本,和用户自己挑选的特征,自动计算出类别间的可分性(Separability)。

这个对称矩阵上元素的值越大,代

表某两类间的可分性越好,以此来让用户选择组合最佳特征。

需要注意的是:

距离的计算仅仅依赖于选择的训练样本,

因此,训练样本的变化直接影响到计算结果

   

三、跟训练样本相关的几个工具

1、SampleEditor对话框

2、SampleNavigation工具栏

和SampleEditor配合使用,激活之后,在SampleEditor中选中某一类,然后鼠标点击直方图中的某一方块(slot),在图像

窗口中,特征值等于直方图中那方块值的训练样本则被选中,并高亮显示。

如果这一特征值的训练样本有好多个,用户则可

通过下拉框自行选择。

3、SampleSelectionInformation对话框

显示了用户当前选中的图斑与各个类别的已有训练样本之间的距离,以及归属于各类别的成员函数值。

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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