模式识别课程论文设计Word下载.docx

上传人:b****6 文档编号:8544966 上传时间:2023-05-11 格式:DOCX 页数:9 大小:121.72KB
下载 相关 举报
模式识别课程论文设计Word下载.docx_第1页
第1页 / 共9页
模式识别课程论文设计Word下载.docx_第2页
第2页 / 共9页
模式识别课程论文设计Word下载.docx_第3页
第3页 / 共9页
模式识别课程论文设计Word下载.docx_第4页
第4页 / 共9页
模式识别课程论文设计Word下载.docx_第5页
第5页 / 共9页
模式识别课程论文设计Word下载.docx_第6页
第6页 / 共9页
模式识别课程论文设计Word下载.docx_第7页
第7页 / 共9页
模式识别课程论文设计Word下载.docx_第8页
第8页 / 共9页
模式识别课程论文设计Word下载.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模式识别课程论文设计Word下载.docx

《模式识别课程论文设计Word下载.docx》由会员分享,可在线阅读,更多相关《模式识别课程论文设计Word下载.docx(9页珍藏版)》请在冰点文库上搜索。

模式识别课程论文设计Word下载.docx

模式识别是直观的,无所不在。

人与动物具有模式识别的能力是非常平常的事情,但是对计算机来说实现模式识别是非常困难的。

让机器能够识别,分类需要研究识别的方法。

而模式识别可以概括为两个类型,一个是直接形象的,例如图片,相片,图案,字符图案等;

另外的就是无知觉形象而只有数据或信号的波形,如语音,声音,心电图,地震波等。

Bayes决策所讨论的问题:

基于最小错误率的Bayes决策指出机器自动识别出现错分类的条件,错分类的可能性如何计算,如何实现使错分类实现可能性最小;

基于最小错误风险的Bayes决策,引入了风险与损失概念,希望做到使风险最小,减小危害大的错分类情况。

错分类造成损失不一样,不同的错误分类造成的损失也是不一样的,不同的错误分类造成的损失会不相同,后一种错误更加可怕,因此就考虑减小因错误分类造成的危害损失。

2.Bayes算法

若已知总共有M类物体,以及各类在这d维特征空间的统计分布,具体说来就是已知各类别wi=1,2,…M的先验概率P(wi)及类条件概率密度函数P(X|wi)。

对于待测样品,Bayes公式可以计算出该样品分属于各类别的概率,叫做后验概率,看X属于哪个类的可能性最大,就把X归于可能性最大的那个类,后验概率作为识别对象归属的依据。

Bayes公式如下:

识别的状态就是一个随机变量,而某种状态出现概率是可以估计的。

Bayes公式体现了先验概率,类概率密度函数,后验概率三者之间的关系。

2.1先验概率P(wi)

先验概率P(wi)针对M个事件出现的可能性而言,不考虑其他条件。

例如由统计资料表明总药品数为n,其中正常药品数为n1,异常药品数为n2,则

称P(w1)和P(w2)为先验概率。

显然在一般情况下正常药品所占比例比较大,即P(w1)>

P(w2),仅按照先验概率来决策,就会把所有药品都划归为正常药品,并没有达到将正常药品与异常药品区分开的目的。

这表明先验概率所提供的信息太少。

2.2类条件概率密度函数

P(X/wi)是指在已知某类别的特征空间中,出现特征值X的概率密度,即第wi类样品它的属性X是如何分布的。

在工程上很多的问题中,统计数据往往满足正态分布规律。

正态分布简单,分析方便,参量少,是一种适宜的数学模型。

如果采用正态密度函数是作为类条件概率密度的函数形式,则函数内的参数如期望方差是未知的,那么问题就变成了如何利用大量样品对这些参数进行估计,只要估计出这些参数,类条件概率密度函数P(X|wi)也就可以确定了。

单变量正态分布概率密度函数为:

其中:

u为数学期望(均值);

为方差。

多维正态密度函数为:

其中:

S为N维协方差矩阵;

S^-1为S的逆矩阵

=(u1,u2,…,un)为N维均值向量;

X=(x1,x2,…,xN)为N维特征向量

在大多数情况下,类条件概率密度函数是可以采用多维变量的正太概率密度函数来模拟,即:

2.3后验概率

后验概率是指呈现状态X时,该样品分属各类别的概率,这个概率值可以作为识别对象归属的依据。

由于属于不同类的待识别对象存在着呈现相同的观察值的可能,即所观察到的某一样品的特征向量为X,而在类中有不止一类可能呈现这一值,它属于各类的概率可用P(wi|X)表示。

可以利用Bayes公式来计算这条件概率,称之为状态的后验概率:

P(wi|X)是表示在X出现条件下,样品为wi类的概率。

2.4P(w1|X)和P(w2|X)与P(X|w1)和P(X|w2)的区别

P(w1|X)和P(w2|X)是在同一条件下,比较w1与w2出现的概率,如P(w1|X)>

P(w2|X),则可能的以下结论,在X条件下,事件w1出现的可能性比事件w2出现的可能性大。

P(w1|X)与P(w2|X)都是指各自条件下出现X的可能性,两者之间没有联系,比较两者没有意义。

P(w1|X)与P(w2|X)是在不同条件下讨论问题,不能因为P(w1|X)>

P(w2|X),就认为X是第一类事物的可能性较大。

3算法的实现

3.1基于最小错误率Bayes分类实现数字样品的识别实现:

在手写的数字识别中属于多类情况,每类样品呈正态分布。

(1)求出每一类手写数字样品的均值

Ni代表wi类的样品个数,n代表特征数目。

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

L代表样品在wi类中的序号,其中l=0,1,2,…,Ni。

Xlj代表wi类的第L个样品,第J个特征值。

代表wi类的Ni个样品第j个特征的平均值。

Xlk代表wi类的第l个样品,第K个特征值。

代表wi类的Ni个样品第K个特征的平均值。

Wi类的协方差矩阵为:

(3)计算出每一类的协方差矩阵的逆矩阵Si^-1以及协方差矩阵的行列式|Si|。

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

其中P(wi)为类别为数字i的先验概率,Ni为数字i的样品数,N为样品总数。

(5)将各个数带入判别函数

(6)判别函数最大值所对应就是手写数字的类别。

3.2基于最小风险的Bayes分类实现

(1)求出每一类手写数字样品的均值。

Nj代表wi类的样品个数,n代表特征数目。

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

Wi类的协方差矩阵为

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

以及协方差矩阵行列式

.

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

(5)定义损失数组为loss[10][10].设初值为

(6)计算每一类损失risk[i]:

(7)找出最小损失所对应的类,该类即是待测样品所属的类别。

附录:

/最小错误率Bayes分离器算法实现

intClassfication:

:

BayesLeastError()

{

doubleX[25];

//待测样品

doubleXmeans[25];

//样品的均值

doubleS[25][25];

//协方差矩阵

doubleS_[25][25];

//S的逆矩阵

doublePw;

//先验概率、

doublehx[10];

//判别函数

inti,j,k,n;

for(n=0;

n<

10;

n++)//循环类别~9

{

intnum=patern[n].number;

//样品的个数

/*************************

*

*Functions:

求样品的平均值

***************************/

for(i=0;

i<

25;

i++)

Xmeans[i]=0.0;

for(k=0;

k<

num;

k++)

25:

Xmeans[i]+=patern[n].feature[k][i]>

0.1?

1.0:

0.0;

}

Xmeans[i]/=(double)num;

求协方差矩阵

doublemode[200][25];

for(j=0;

j<

j++)

mode[i][j]=patern[n].feature[i][j]>

1.04:

doubles=0.0;

s=s+(mode[k][i]-Xmeans[i]*(mode[k][j]-Xmeans[j]);

s=s/(double)(num-1);

S[i][j]=s;

求先验概率

inttotal=0;

total+=patern[i].number;

Pw=(double)num/(double)total;

/**********************

求S的逆矩阵

***********************/

//

S_[i][j]=S[i][j];

double(*p)[25]=S_;

brinv(*p,25);

求S的行列式

double(*pp)[25]=S;

doubleDetS;

DetS=bsdet(*pp,25);

求判别函数

X[i]=testsample[i]>

X[i]-=Xmeans[i];

doublet[25];

t[i]=0;

brmul(X,S_,25,t);

doublet1=brmul(t,X,25);

//矩阵A与矩阵B的乘积矩阵C=AB

doublet2=log(Pw);

doublet3=log(DetS+1);

hx[n]=-t1/2+t2-t3/2;

判别函数的最大值

***********************/

doublemaxval=hx[0];

intnumber=0;

for(n=1;

n++)

if(hx[n]>

maxval)

maxval=hx[n];

number=n;

returnnumber;

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2