模式识别大作业02125128(修改版)
模式识别大作业
一、问题描述现有sonar 和wdbc 这两个样本数据集,取一半数据作为训练样本集,其余数据作为测试样本集,通过编程实现分别用C 均值算法对测试样本集中的数据进行分类,进行10次分类求正确率的平均值。
二、算法描述1.初始化:选择c 个代表点,...,,321c p p p p2.建立c 个空间聚类表:C K K K ...,213.按照最小距离法则逐个对样本X 进行分类:),(),,(min arg J i iK x add p x j ∂=4.计算J 及用各聚类列表计算聚类均值,并用来作为各聚类新的代表点(更新代表点)5.若J 不变或代表点未发生变化,则停止。
否则转2.),(1∑∑=∈=ci K x i i p x J δ6.计算正确率:将dtat(i,1)与trueflag(i,1)(i=1~n )进行比较,统计正确分类的样本数,并计算正确率将上述过程循环10次,得到10次的正确率,并计算平均正确率ave算法流程图三、实验数据表1 实验数据四、实验结果表2 实验结果准确率(%)注:表中准确率是十次实验结果的平均值五、程序源码用C均值算法对sonar分类(对wdbc分类的代码与之类似)clc;clear;accuracy = 0;for i = 1:10data = xlsread('sonar.xls');data = data';%初始划分2个聚类rand(:,1:size(data,2)) = data(:,randperm(size(data,2))'); %使矩阵元素按列重排A(:,1) = rand(:,1);B(:,1) = rand(:,2); %选取代表点m = 1;n = 1;for i = 3:size(rand,2)temp1 = rand(:,i) - A(:,1);temp2 = rand(:,i) - B(:,1);temp1(61,:) = [];temp2(61,:) = []; %去掉标号后再计算距离if norm(temp1) < norm(temp2)m = m + 1; %A类中样本个数A(:,m) = rand(:,i);elsen = n + 1; %B类中样本个数B(:,n) = rand(:,i);endend%划分完成m1 = mean(A,2);m2 = mean(B,2);%计算JeJ = 0;for i = 1:mtemp = A(:,i) - m1;temp(61,:) = []; %去掉标号的均值J = J + norm(temp)^2;endfor i = 1:ntemp = B(:,i) - m2;temp(61,:) = [];J = J + norm(temp)^2;endtest = [A,B];N = 0; %Je不变的次数while N < m + nrarr = randperm(m + n); %产生1-208即所有样本序号的随机不重复序列向量y = test(:,rarr(1,1));if rarr(1,1) <= m %y属于A类时if m == 1continueelsetemp1 = y - m1;temp1(61,:) = [];temp2 = y - m2;temp2(61,:) = [];p1 = m / (m - 1) * norm(temp1);p2 = n / (n + 1) * norm(temp2);if p2 < p1test = [test,y];test(:,rarr(1,1)) = [];m = m - 1;n = n + 1;endendelse %y属于B类时if n == 1continueelsetemp1 = y - m1;temp1(61,:) = [];temp2 = y - m2;temp2(61,:) = [];p1 = m / (m + 1) * norm(temp1);p2 = n / (n - 1) * norm(temp2);if p1 < p2test = [y,test];test(:,rarr(1,1)) = [];m = m + 1;n = n - 1;endendendA(:,1:m) = test(:,1:m);B(:,1:n) = test(:,m + 1:m + n);m1 = mean(A,2);m2 = mean(B,2);%计算JetempJ = 0;for i = 1:mtemp = A(:,i) - m1;temp(61,:) = []; %去掉标号的均值tempJ = tempJ + norm(temp)^2;endfor i = 1:ntemp = B(:,i) - m2;temp(61,:) = [];tempJ = tempJ + norm(temp)^2;endif tempJ == JN = N + 1;elseJ = tempJ;endend %while循环结束%判断正确率correct = 0;false = 0;A(:,1:m) = test(:,1:m);B(:,1:n) = test(:,m + 1:m + n);c = mean(A,2);if abs(c(61,1) - 1) < abs(c(61,1) - 2) %聚类A中大多为1类元素for i = 1:mif A(61,i) == 1correct = correct + 1;elsefalse = false + 1;endendfor i = 1:nif B(61,i) == 2correct = correct + 1;elsefalse = false + 1;endendelse %聚类A中大多为2类元素for i = 1:mif A(61,i) == 2correct = correct + 1;elsefalse = false + 1;endendfor i = 1:nif B(61,i) == 1correct = correct + 1;elsefalse = false + 1;endendendaccuracy = accuracy + correct / (correct + false);endaver_accuracy = accuracy / 10fprintf('用C均值算法对sonar进行十次分类的结果的平均正确率为%.2d %%.\n',aver_accuracy*100)六.实验心得本算法确定的K 个划分到达平方误差最小。
《模式识别》课程2019年度大作业
《模式识别》课程2019年度大作业注意事项:(请务必详细阅读所有注意事项)1.本作业发布时间2019.5.5,交作业时间:2018.5.30日第一节课下课后,第二节课上课前(即上午9点整)。
与平时作业不同,不允许迟交,迟交则成绩以0分计。
2.与平时作业不同,大作业只有研究生同学完成,保送本系的本科同学也需要完成,但其他本科生无需完成。
请在作业的开始部分写上姓名、学号,缺少该信息的,本次作业总分扣除10分。
如果是已经完成保送手续,先修研究生课程的本校本科生,请一定每次作业在姓名后加注“(本科保送)”,否则无法拿到学分。
3.与平时作业不同,作业评分以电子版为准。
需要提交代码,具体的提交要求请仔细阅读作业说明。
总体文件大小不超过5MB(可以提交压缩文件)。
上传地址为/。
初始用户名和密码为学号。
研究生学号以MP18开头的暂时无法登陆,可将电子版email给助教(wangguohua@, yik@),其余同学务必使用网站系统上传。
是否迟交以cslabcms系统的时间戳或电子邮件的时间戳为准。
大作业:1.仔细阅读以下网页的内容(/weixs/project/DDT/DDT.html),包括其中提供链接的英文论文,理解DDT方法的运行步骤。
2.自行实现DDT算法。
实现时可以参考上述网页提供的Matlab代码以加深对DDT方法的理解,但是不可以使用MatConvNet这一深度学习框架,除此以外的其余任意深度学习软件框架都可以使用。
3.如尚未有深度学习、CNN的编程经验,请搜索网络资源完成自学。
4.如有可供使用的GPU加速卡资源,可以自由使用。
如无这种资源,可在编程中指定使用CPU(即,不使用GPU)来完成计算。
DDT方法的计算量很小,使用CPU也可完成计算。
5.在上述网页提供下载的代码链接里有少量图片可供使用,利用这些图片完成DDT方法的学习,利用可视化技术(参考论文和代码)直观考察DDT方法的效果。
6.请提交完成上述任务的文档和代码,需提交的内容如下:a.说明文档:自行组织文档的格式,保证文档的内容能让助教清晰地理解你的代码运行环境、实现的主要思路、你通过实现并运行代码后对DDT方法的理解等。
大学模式识别考试题及答案详解()
一、填空与选择填空(本题答案写在此试卷上,30分)1、模式识别系统的基本构成单元包括:模式采集、特征提取与选择和模式分类。
2、统计模式识别中描述模式的方法一般使用特真矢量;句法模式识别中模式描述方法一般有串、树、网。
3、聚类分析算法属于(1);判别域代数界面方程法属于(3)。
(1)无监督分类 (2)有监督分类(3)统计模式识别方法(4)句法模式识别方法4、若描述模式的特征量为0-1二值特征量,则一般采用(4)进行相似性度量。
(1)距离测度(2)模糊测度(3)相似测度(4)匹配测度5、下列函数可以作为聚类分析中的准则函数的有(1)(3)(4)。
(1)(2) (3)(4)6、Fisher线性判别函数的求解过程是将N维特征矢量投影在(2)中进行。
(1)二维空间(2)一维空间(3)N-1维空间7、下列判别域界面方程法中只适用于线性可分情况的算法有(1);线性可分、不可分都适用的有(3)。
(1)感知器算法(2)H-K算法(3)积累位势函数法8、下列四元组中满足文法定义的有(1)(2)(4)。
(1)({A, B}, {0, 1}, {A?01, A? 0A1 , A? 1A0 , B?BA , B? 0}, A) (2)({A}, {0, 1}, {A?0, A? 0A}, A)(3)({S}, {a, b}, {S ? 00S, S ? 11S, S ? 00, S ? 11}, S)(4)({A}, {0, 1}, {A?01, A? 0A1, A? 1A0}, A)二、(15分)简答及证明题(1)影响聚类结果的主要因素有那些?(2)证明马氏距离是平移不变的、非奇异线性变换不变的。
答:(1)分类准则,模式相似性测度,特征量的选择,量纲。
(2)证明:(2分)(2分)(1分)设,有非奇异线性变换:(1分)(4分)三、(8分)说明线性判别函数的正负和数值大小在分类中的意义并证明之。
答:(1)(4分)的绝对值正比于到超平面的距离平面的方程可以写成式中。
模式识别大作业
模式识别大作业引言:转眼之间,研一就结束了。
这学期的模式识别课也接近了尾声。
我本科是机械专业,编程和算法的理解能力比较薄弱。
所以虽然这学期老师上课上的很精彩,但是这学期的模式识别课上的感觉还是有点吃力。
不过这学期也加强了编程的练习。
这次的作业花了很久的时间,因为平时自己的方向是主要是图像降噪,自己在看这一块图像降噪论文的时候感觉和模式识别的方向结合的比较少。
我看了这方面的模式识别和图像降噪结合的论文,发现也比较少。
在思考的过程中,我想到了聚类的方法。
包括K均值和C均值等等。
因为之前学过K均值,于是就选择了K均值的聚类方法。
然后用到了均值滤波和自适应滤波进行处理。
正文:k-means聚类算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。
一般都采用均方差作为标准测度函数。
k-means 算法接受输入量k ;然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。
聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
均值滤波是常用的非线性滤波方法 ,也是图像处理技术中最常用的预处理技术。
它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。
再用模板中的全体像素的平均值来代替原来像素值。
即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y)m为该模板中包含当前像素在内的像素总个数。
模式识别大作业1
模式识别大作业--fisher线性判别和近邻法学号:021151**姓名:**任课教师:张**I. Fisher线性判别A. fisher线性判别简述在应用统计方法解决模式识别的问题时,一再碰到的问题之一是维数问题.在低维空间里解析上或计算上行得通的方法,在高维里往往行不通.因此,降低维数就成为处理实际问题的关键.我们考虑把维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维.这样,必须找一个最好的,易于区分的投影线.这个投影变换就是我们求解的解向量.B.fisher线性判别的降维和判别1.线性投影与Fisher准则函数各类在维特征空间里的样本均值向量:,(1)通过变换映射到一维特征空间后,各类的平均值为:,(2)映射后,各类样本“类内离散度”定义为:,(3)显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。
因此,定义Fisher准则函数:(4)使最大的解就是最佳解向量,也就是Fisher的线性判别式。
2.求解从的表达式可知,它并非的显函数,必须进一步变换。
已知:,, 依次代入上两式,有:,(5)所以:(6)其中:(7)是原维特征空间里的样本类内离散度矩阵,表示两类均值向量之间的离散度大小,因此,越大越容易区分。
将(4.5-6)和(4.5-2)代入(4.5-4)式中:(8)其中:,(9)因此:(10)显然:(11)称为原维特征空间里,样本“类内离散度”矩阵。
是样本“类内总离散度”矩阵。
为了便于分类,显然越小越好,也就是越小越好。
将上述的所有推导结果代入表达式:可以得到:其中,是一个比例因子,不影响的方向,可以删除,从而得到最后解:(12)就使取得最大值,可使样本由维空间向一维空间映射,其投影方向最好。
是一个Fisher线性判断式.这个向量指出了相对于Fisher准则函数最好的投影线方向。
C.算法流程图左图为算法的流程设计图。
II.近邻法A. 近邻法线简述K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。
模式识别大作业
作业1 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。
调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。
具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。
在分类器设计时可以考察采用不同先验概率(如对, 对, 对等)进行实验,考察对决策规则和错误率的影响。
图1-先验概率:分布曲线图2-先验概率:分布曲线图3--先验概率:分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。
程序:和2.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes 分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。
比较相关假设和不相关假设下结果的差异。
在分类器设计时可以考察采用不同先验概率(如 vs. , vs. , vs. 等)进行实验,考察对决策和错误率的影响。
训练样本female来测试图1先验概率 vs. 图2先验概率 vs.图3先验概率 vs. 图4不同先验概率对测试样本1进行试验得图对测试样本2进行试验有图可以看出先验概率对决策规则和错误率有很大的影响。
程序和3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。
设以ceshi1单个特征身高进行试验:决策表W1W2W10W20close all;clear all;X=120::200; %设置采样范围及精度pw1=;pw2=; %设置先验概率sample1=textread('') %读入样本samplew1=zeros(1,length(sample1(:,1)));u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布figure(1);subplot(2,1,1);plot(X,y1);title('F身高类条件概率分布曲线');sample2=textread('') %读入样本samplew2=zeros(1,length(sample2(:,1)));u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布subplot(2,1,2);plot(X,y2);title('M身高类条件概率分布曲线');P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);figure(2);subplot(2,1,1);plot(X,P1);title('F身高后验概率分布曲线');subplot(2,1,2);plot(X,P2);title('M身高后验概率分布曲线');P11=pw1*y1;P22=pw2*y2;figure(3);subplot(3,1,1);plot(X,P11);subplot(3,1,2);plot(X,P22);subplot(3,1,3);plot(X,P11,X,P22);sample=textread('all ') %读入样本[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);%bayes分类器function [result] =bayes(sample1(:,1),sample2(:,1),pw1,pw2); error1=0;error2=0;u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);for i = 1:50if P1(i)>P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);endendfor i=1:50if result(k)==0error1=error1+1;else result(k)=1error2=error2+1;endendratio = error1+error2/length(sample); %识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
模式识别大作业(二)
模式识别大作业(二)————C-均值算法与模糊C 均值聚类的比较姓名:谭红光 学号:02125128 班级:021252一 原理:1.C 均值的原理:C 均值聚类算法是一种典型的无监督动态聚类算法。
该算法是在类别数目已知(=k )的条件下进行的,能够使聚类结果的距离平方和最小,即算法的基础是误差平方和准则。
其基本过程是建立初始的聚心和聚类,通过多次迭代,逐渐调整各类的聚心和各像元的类别,直至得到聚类准则约束下的最好结果为止。
本实验的具体过程如下:选择初始类别中心,假设有c 个类别,设置其中心分别为(1)(1)(1)12,,,c Z Z Z 在第k 步迭代中,对于任何一个像元x(是一个N 维向量,N 是高光谱图像的波段数目),按如下方法把它调整到。
各类别中的某一个类别中去。
令d(x ,y)为向量x ,y 之间的距离,若:()()(,)(,)k k i jd x Z d x Z <=, j = 1 2 … c (j i ≠) 则()k i x S∈,其中()k i S 是以()k iZ 为中心的类。
由上一步得到的()k iS(i =1 2…c )个类别新的中心(1)k i Z +()(1)1k i k ix S iZxN +∈=∑其中N i是类别()k iS 的数目。
(1)k i Z +是按照最小J 的原则,J 的表达式为:()(1)1(,)k i ck i i x S J d x Z +=∈=∑∑对所有的i =1 2…c 。
如果,(1)()k k i i Z Z +=,则迭代结束(在程序中,则按照每个类别的对应的那些像素不再变化,则停止迭代),否则转到第二步继续迭代。
2.模糊C 均值的原理在数字图像由于存在混合像素的原因,也就是说一个像素中不仅存在一类地物,因而采用硬分类方式往往不合适,而模糊C 均值就是引入模糊集对每个像素的划分概率不单单是用0或1这样的硬分类方式,而是0和1之间的范围内(包括0和1)。
模式识别大作业
模式识别大作业(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--作业1 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。
调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。
具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。
在分类器设计时可以考察采用不同先验概率(如对, 对, 对等)进行实验,考察对决策规则和错误率的影响。
图1-先验概率:分布曲线图2-先验概率:分布曲线图3--先验概率:分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。
程序:和2.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。
比较相关假设和不相关假设下结果的差异。
在分类器设计时可以考察采用不同先验概率(如 vs. , vs. , vs. 等)进行实验,考察对决策和错误率的影响。
训练样本female来测试图1先验概率 vs. 图2先验概率 vs.图3先验概率 vs. 图4不同先验概率对测试样本1进行试验得图对测试样本2进行试验有图可以看出先验概率对决策规则和错误率有很大的影响。
程序和3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。
W1W2W10W20close all;clear all;X=120::200; %设置采样范围及精度pw1=;pw2=; %设置先验概率sample1=textread('') %读入样本samplew1=zeros(1,length(sample1(:,1)));u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布figure(1);subplot(2,1,1);plot(X,y1);title('F身高类条件概率分布曲线');sample2=textread('') %读入样本samplew2=zeros(1,length(sample2(:,1)));u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布subplot(2,1,2);plot(X,y2);title('M身高类条件概率分布曲线');P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);figure(2);subplot(2,1,1);plot(X,P1);title('F身高后验概率分布曲线');subplot(2,1,2);plot(X,P2);title('M身高后验概率分布曲线');P11=pw1*y1;P22=pw2*y2;figure(3);subplot(3,1,1);plot(X,P11);subplot(3,1,2);plot(X,P22);subplot(3,1,3);plot(X,P11,X,P22);sample=textread('all ') %读入样本[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);%bayes分类器function [result] =bayes(sample1(:,1),sample2(:,1),pw1,pw2); error1=0;error2=0;u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);for i = 1:50if P1(i)>P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);endendfor i=1:50if result(k)==0error1=error1+1;else result(k)=1error2=error2+1;endendratio = error1+error2/length(sample); %识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
(完整word版)模式识别题目及答案(word文档良心出品)
一、(15分)设有两类正态分布的样本集,第一类均值为T1μ=(2,0),方差11⎡⎤∑=⎢⎥⎣⎦11/21/2,第二类均值为T2μ=(2,2),方差21⎡⎤∑=⎢⎥⎣⎦1-1/2-1/2,先验概率12()()p p ωω=,试求基于最小错误率的贝叶斯决策分界面。
解 根据后验概率公式()()()()i i i p x p p x p x ωωω=, (2’)及正态密度函数11/21()exp[()()/2]2T i i i i nip x x x ωμμπ-=--∑-∑ ,1,2i =。
(2’) 基于最小错误率的分界面为1122()()()()p x p p x p ωωωω=, (2’) 两边去对数,并代入密度函数,得1111112222()()/2ln ()()/2ln T T x x x x μμμμ----∑--∑=--∑--∑ (1) (2’)由已知条件可得12∑=∑,114/3-⎡⎤∑=⎢⎥⎣⎦4/3-2/3-2/3,214/3-⎡⎤∑=⎢⎥⎣⎦4/32/32/3,(2’)设12(,)Tx x x =,把已知条件代入式(1),经整理得1221440x x x x --+=, (5’)二、(15分)设两类样本的类内离散矩阵分别为11S ⎡⎤=⎢⎥⎣⎦11/21/2, 21S ⎡⎤=⎢⎥⎣⎦1-1/2-1/2,各类样本均值分别为T 1μ=(1,0),T2μ=(3,2),试用fisher 准则求其决策面方程,并判断样本Tx =(2,2)的类别。
解:122S S S ⎡⎤=+=⎢⎥⎣⎦200 (2’) 投影方向为*112-2-1()211/2w S μμ-⎡⎤⎡⎤⎡⎤=-==⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦1/200 (6’)阈值为[]*0122()/2-1-131T y w μμ⎡⎤=+==-⎢⎥⎣⎦(4’)给定样本的投影为[]*0-12241T y w x y ⎡⎤===-<⎢⎥-⎣⎦, 属于第二类 (3’)三、 (15分)给定如下的训练样例实例 x0 x1 x2 t(真实输出) 1 1 1 1 1 2 1 2 0 1 3 1 0 1 -1 4 1 1 2 -1用感知器训练法则求感知器的权值,设初始化权值为0120w w w ===;1 第1次迭代(4’)2 第2次迭代(2’)3 第3和4次迭代四、 (15分)i. 推导正态分布下的最大似然估计;ii. 根据上步的结论,假设给出如下正态分布下的样本{}1,1.1,1.01,0.9,0.99,估计该部分的均值和方差两个参数。
模式识别大作业
作业1 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立Bayes分类器,用测试样本数据对该分类器进行测试。
调整特征、分类器等方面的一些因素,考察它们对分类器性能的影响,从而加深对所学内容的理解和感性认识。
具体做法:1.应用单个特征进行实验:以(a)身高或者(b)体重数据作为特征,在正态分布假设下利用最大似然法或者贝叶斯估计法估计分布密度参数,建立最小错误率Bayes分类器,写出得到的决策规则,将该分类器应用到测试样本,考察测试错误情况。
在分类器设计时可以考察采用不同先验概率(如对, 对, 对等)进行实验,考察对决策规则和错误率的影响。
图1-先验概率:分布曲线图2-先验概率:分布曲线图3--先验概率:分布曲线图4不同先验概率的曲线有图可以看出先验概率对决策规则和错误率有很大的影响。
程序:和2.应用两个特征进行实验:同时采用身高和体重数据作为特征,分别假设二者相关或不相关(在正态分布下一定独立),在正态分布假设下估计概率密度,建立最小错误率Bayes 分类器,写出得到的决策规则,将该分类器应用到训练/测试样本,考察训练/测试错误情况。
比较相关假设和不相关假设下结果的差异。
在分类器设计时可以考察采用不同先验概率(如vs. , vs. , vs. 等)进行实验,考察对决策和错误率的影响。
训练样本female来测试图1先验概率vs. 图2先验概率vs.图3先验概率vs. 图4不同先验概率对测试样本1进行试验得图对测试样本2进行试验有图可以看出先验概率对决策规则和错误率有很大的影响。
程序和3.自行给出一个决策表,采用最小风险的Bayes决策重复上面的某个或全部实验。
W1W2W10W20close all;clear all;X=120::200; %设置采样范围及精度pw1=;pw2=; %设置先验概率sample1=textread('') %读入样本samplew1=zeros(1,length(sample1(:,1)));u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布figure(1);subplot(2,1,1);plot(X,y1);title('F身高类条件概率分布曲线');sample2=textread('') %读入样本samplew2=zeros(1,length(sample2(:,1)));u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布subplot(2,1,2);plot(X,y2);title('M身高类条件概率分布曲线');P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);figure(2);subplot(2,1,1);plot(X,P1);title('F身高后验概率分布曲线');subplot(2,1,2);plot(X,P2);title('M身高后验概率分布曲线');P11=pw1*y1;P22=pw2*y2;figure(3);subplot(3,1,1);plot(X,P11);subplot(3,1,2);plot(X,P22);subplot(3,1,3);plot(X,P11,X,P22);sample=textread('all ') %读入样本[result]=bayes(sample1(:,1),sample2(:,1),pw1,pw2);%bayes分类器function [result] =bayes(sample1(:,1),sample2(:,1),pw1,pw2);error1=0;error2=0;u1=mean(sample1(:,1));m1=std(sample1(:,1));y1=normpdf(X,u1,m1); %类条件概率分布u2=mean(sample2(:,1));m2=std(sample2(:,1));y2=normpdf(X,u2,m2); %类条件概率分布P1=pw1*y1./(pw1*y1+pw2*y2);P2=pw2*y2./(pw1*y1+pw2*y2);for i = 1:50if P1(i)>P2(i)result(i)=0;pe(i)=P2(i);elseresult(i)=1;pe(i)=P1(i);endendfor i=1:50if result(k)==0error1=error1+1;else result(k)=1error2=error2+1;endendratio = error1+error2/length(sample); %识别率,百分比形式sprintf('正确识别率为%.2f%%.',ratio)作业2 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
模式识别大作业
模式识别大作业对sonar数据进行分类,用Fisher线性判别法和最近邻算法对其进行分类,并用MATLAB写程序对其进行模拟。
Fisher线性判别法的源程序如下clear,close all%¶ÁÈ¡È«²¿Êý¾ÝRock=xlsread('C:\Users\Administrator\Documents\data\rock');Mine=xlsread('C:\Users\Administrator\Documents\data\mine');%²úÉúËæ»úÊýr1=randperm(97,48);r2=randperm(111,56);%È¡³öѵÁ·Ñù±¾for i=1:48vtrainrock(i,:)=Rock(r1(1,i),:);endtrainrock=vtrainrock';for i=1:56vtrainmine(i,:)=Mine(r2(1,i),:);endtrainmine=vtrainmine';%È¡³ö²âÊÔÑù±¾Rock(r1',:)=[];testrock=Rock';Mine(r2',:)=[];testmine=Mine';%¼ÆËã¾ùÖµÏòÁ¿mrock=mean(trainrock,2);mmine=mean(trainmine,2);%¼ÆËãÀàÄÚÀëÉ¢¶È¾ØÕófor j=1:48s1=(trainrock(:,j)-mrock);sr=s1*s1';srock=zeros(60);srock=sr+srock;endfor j=1:56s2=(trainmine(:,j)-mmine);sm=s2*s2';smine=zeros(60);smine=sm+smine;endSw=srock+smine;%¼ÆËãÀà¼äÀëÉ¢¶È¾ØÕóSb=(mrock-mmine)*(mrock-mmine)';%¼ÆËã×î¼ÑͶӰ·½ÏòW=inv(Sw)*(mrock-mmine);%¶ÔѵÁ·Ñù±¾½øÐÐͶӰintestrock=W'*testrock;intestmine=W'*testmine;%¼ÆËãÅбðãÐÖµµãintrainrock=W'*trainrock;intrainmine=W'*trainmine;w0=(mean(intrainrock,2)*48+mean(intrainmine,2)*56)/104;%·ÖÀಢ¼ÆËã׼ȷÂÊ%¶Ô´ý²âÑù±¾½øÐзÖÀàj1=1;k1=1;RocksortRock1=zeros(size(intestrock));%¼ì²âÑù±¾Rock±»ÕýÈ·µØ·ÖΪRockµÄÊýRocksortMine1=zeros(size(intestmine));%¼ì²âÑù±¾Rock±»´íÎóµØ·ÖΪMineµÄÊýRocksortRocknumber1=zeros(size(intestrock));%¼ì²âÑù±¾Rock±»ÕýÈ·µØ·ÖΪRockµÄÊýÔÚ¼ì²âÑù±¾ÀïµÄÐòºÅRocksortMinenumber1=zeros(size(intestmine));%¼ì²âÑù±¾Rock±»´íÎóµØ·ÖΪMineµÄÊýÔÚ¼ì²âÑù±¾ÀïµÄÐòºÅfor i=1:49if(intestrock(1,i)>w0)RocksortRock1(1,j1)=intestrock(1,i);RocksortRocknumber1(1,j1)=i;j1=j1+1;elseRocksortMine1(1,k1)=intestrock(1,i);RocksortMinenumber1(1,k1)=i;k1=k1+1;endendj2=1;k2=1;MinesortMine2=zeros(size(intestmine));%¼ì²âÑù±¾Mine±»ÕýÈ·µØ·ÖΪMineµÄÊýMinesortRock2=zeros(size(intestrock));%¼ì²âÑù±¾Mine±»´íÎóµØ·ÖΪRockµÄÊýMinesortMinenumber2=zeros(size(intestmine));%¼ì²âÑù±¾Mine±»ÕýÈ·µØ·ÖΪMineµÄÊýÔÚ¼ì²âÑù±¾ÀïµÄÐòºÅMinesortRocknumber2=zeros(size(intestrock));%¼ì²âÑù±¾Mine±»´íÎóµØ·ÖΪRockµÄÊýÔÚ¼ì²âÑù±¾ÀïµÄÐòºÅfor i=1:55if(intestmine(1,i)<=w0)MinesortMine2(1,j2)=intestmine(1,i);MinesortMinenumber2(1,j2)=i;j2=j2+1;elseMinesortRock2(1,k2)=intestmine(1,i);MinesortRocknumber2(1,k2)=i;k2=k2+1;endend%¼ÆËã·ÖÀà½á¹ûµÄÕýÈ·ÂÊright=(j1+j2-2)/(j1+j2+k1+k2-4);disp(right);最近邻算法的源程序如下clear,close all%¶ÁÈ¡È«²¿Êý¾ÝRock=xlsread('C:\Users\Administrator\Documents\data\rock'); Mine=xlsread('C:\Users\Administrator\Documents\data\mine'); %²úÉúËæ»úÊýr1=randperm(97,48);r2=randperm(111,56);%È¡³öѵÁ·Ñù±¾for i=1:48vtrainrock(i,:)=Rock(r1(1,i),:);endtrainrock=vtrainrock';for i=1:56vtrainmine(i,:)=Mine(r2(1,i),:);endtrainmine=vtrainmine';%È¡³ö²âÊÔÑù±¾Rock(r1',:)=[];testrock=Rock';Mine(r2',:)=[];testmine=Mine';%×î½üÁÚ·ÖÀàrocklast=zeros(size(Rock'));minelast=zeros(size(Mine'));rgr=0;rwm=0;mgm=0;mwr=0;for i=1:49for j=1:48Ar(j,1)=(testrock(:,i)-trainrock(:,j))'*(testrock(:,i)-trainrock(:,j)) ;endfor k=1:56Br(k,1)=(testrock(:,i)-trainmine(:,k))'*(testrock(:,i)-trainmine(:,k)) ;end%¶Ô´ý²âÑù±¾½øÐзÖÀàif(min(Ar)<=min(Br))rocklast(:,i)=testrock(:,i);rgr=rgr+1;Ar=zeros(48,1);Br=zeros(56,1);elseminelast(:,i)=testrock(:,i);rwm=rwm+1;Ar=zeros(48,1);Br=zeros(56,1);endendfor i=1:55for j=1:48Am(j,1)=(testmine(:,i)-trainrock(:,j))'*(testmine(:,i)-trainrock(:,j)) ;endfor k=1:56Bm(k,1)=(testmine(:,i)-trainmine(:,k))'*(testmine(:,i)-trainmine(:,k)) ;end%¶Ô´ý²âÑù±¾½øÐзÖÀàif(min(Am)<min(Bm))rocklast(:,i)=testmine(:,i);mwr=mwr+1;Am=zeros(48,1);Bm=zeros(56,1);elseminelast(:,i)=testmine(:,i);mgm=mgm+1;Am=zeros(48,1);Bm=zeros(56,1);endendright=(rgr+mgm)/(rgr+mgm+rwm+mwr);disp(right);以上为两种算法在MATLAB里的源代码。
模式识别大作业
模式识别大作业共同空间模式及其几种改进方法的研究1 综述脑-机接口(brain -computer interface,BCI)系统通过记录大脑活动提供一种不依赖肌肉的大脑直接控制外部设备的方法,这为那些具有严重神经肌肉损伤(如肌肉萎缩性侧索硬化、脑瘫、脑干中风等)患者提供了与外界交流、控制外界设备的新方式。
在各种监控大脑活动的方法中,脑电图(electroencephalogram, EEG)以其较高的时间分辨率、简单的设备及信号采样要求,优于脑磁图(magnetoencephalogram, EMG)、功能核磁共振成像( functional magnetic resonance imaging, fMRI),而作为一种理想的 BCI 控制信号被广泛研究[1]。
图1.1 脑机接口系统模型共同空间模式(common spatial patterns CSP)是如图1.1所示脑机接口工作流程中特征提取的一种重要算法。
使用脑机接口控制设备要求从复杂的高维EEG信号中提取相关的、稳定的信号。
空间滤波是特征提取的关键步骤。
CSP是近些年计算空间滤波器最常用的方法之一,能够很好地判别任在两种不同的精神状态下的脑电信号[2]。
对脑机接口后面的工作有重要意义。
但在实际应用中,由于脑机接口系统会出现如眼动、肌动和仪器震动等噪声,而CSP对于噪声较为敏感,因此在近些年人们不断研究出许多提高CSP稳定性的改进方法。
本文对CSP的工作原理和几种改进CSP方法进行讨论,并用MATLAB仿真实验测试几种方法在BCI竞赛数据库上的分类准确率。
2 经典共同空间模式CSP 算法的目标是创建公共空间滤波器,最大化第一类方差,最小化另一类方差,采用同时对角化两类任务协方差矩阵的方式,区别出两种任务的最大化公共空间特征[3]。
定义一个N x T的矩阵E来表示原始EEG信号数据段,其中N表示电极数目即空间导联数目,T表示每个通道的采样点数目。
模式识别习题及答案-精品资料
第一章绪论1 •什么是模式?具体事物所具有的信息。
模式所指的不是事物本身,而是我们从事物中获得的—信息__。
2. 模式识别的定义? 让计算机来判断事物。
3. 模式识别系统主要由哪些部分组成? 数据获取一预处理一特征提取与选择一分类器设计/分类决策。
第二章贝叶斯决策理论P ( W 2 ) / p ( w 1 ) _,贝V X1. 最小错误率贝叶斯决策过程?答:已知先验概率,类条件概率。
利用贝叶斯公式 得到后验概率。
根据后验概率大小进行决策分析。
2 .最小错误率贝叶斯分类器设计过程?答:根据训练数据求出先验概率P ( W i ), i类条件概率分布p ( x | W i ), i 1 , 2 利用贝叶斯公式得到后验概率P (W i | x)P(X | W j )P(W j )j 1如果输入待测样本 X ,计算X 的后验概率根据后验概率大小进行分类决策分析。
3. 最小错误率贝叶斯决策规则有哪几种常用的表示形式?决策规则的不同形式(董点)C1^ 如vr, | JV ) = max 戶(vr ] WJ A * U vtvEQ 如杲尹a H ; )2^(ir, ) = max |沪0輕』),则x e HpCx |=尸4 "J"匕< 4) 如!4i= — 1IL | /( JV )] = — 111 戸(兀 | w”. ) -+- 11111r a4. 贝叶斯决策为什么称为最小错误率贝叶斯决策?答:最小错误率Bayes 决策使得每个观测值下的条件错误率最小因而保证了 (平均)错误率最小。
Bayes 决策是最优决策:即,能使决策错误率最小。
5 .贝叶斯决策是 由先验概率和(类条件概率)概率,推导(后验概率)概率,然后利用这 个概率进行决策。
6.利用乘法法则和全概率公式证明贝叶斯公式p(AB) p(A|B)p(B) p(B|A)p(A)P (A」B )答:m所以推出贝叶斯公式p(B) p(B|Aj)p(Aj)j 17. 朴素贝叶斯方法的条件独立D (1P (x | W i ) P(W i )i i入)2P(x | W j ) P (w j )j 11 ,2P (x | W i )P(W i )如果 I (x)P(B |A i )P(AJ P ( B ) P ( B | A i ) P ( A i ) 7MP ( B | A j ) P ( A j )2假设是( P(x| 3 i) =P(x1, x2, …,xn | co i)19.=P(x1|3 i) P(x2| 3 i)…P(xn| 3 i))8•怎样利用朴素贝叶斯方法获得各个属性的类条件概率分布?答:假设各属性独立,P(x| 3 i) =P(x1, x2, …,xn |3 i) = P(x1| 3 i) P(x2| 3 i)P(xn| 3 i)后验概率:P( 3 i|x) = P( 3 i) P(x1|3 i) P(x2| 3 i)…P(xn| 3 i)类别清晰的直接分类算,如果是数据连续的,假设属性服从正态分布,算出每个类的均值方 差,最后得到类条件概率分布。
模式识别作业(全)
模式识别大作业一.K均值聚类(必做,40分)1.K均值聚类的基本思想以及K均值聚类过程的流程图;2.利用K均值聚类对Iris数据进行分类,已知类别总数为3。
给出具体的C语言代码,并加注释。
例如,对于每一个子函数,标注其主要作用,及其所用参数的意义,对程序中定义的一些主要变量,标注其意义;3.给出函数调用关系图,并分析算法的时间复杂度;4.给出程序运行结果,包括分类结果(只要给出相对应的数据的编号即可)以及循环迭代的次数;5.分析K均值聚类的优缺点。
二.贝叶斯分类(必做,40分)1.什么是贝叶斯分类器,其分类的基本思想是什么;2.两类情况下,贝叶斯分类器的判别函数是什么,如何计算得到其判别函数;3.在Matlab下,利用mvnrnd()函数随机生成60个二维样本,分别属于两个类别(一类30个样本点),将这些样本描绘在二维坐标系下,注意特征值取值控制在(-5,5)范围以内;4.用样本的第一个特征作为分类依据将这60个样本进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志(正确分类的样本点用“O”,错误分类的样本点用“X”)画出来;5.用样本的第二个特征作为分类依据将这60个样本再进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志画出来;6.用样本的两个特征作为分类依据将这60个样本进行分类,统计正确分类的百分比,并在二维坐标系下将正确分类的样本点与错误分类的样本点用不同标志画出来;7.分析上述实验的结果。
8.60个随即样本是如何产生的的;给出上述三种情况下的两类均值、方差、协方差矩阵以及判别函数;三.特征选择(选作,15分)1.经过K均值聚类后,Iris数据被分作3类。
从这三类中各选择10个样本点;2.通过特征选择将选出的30个样本点从4维降低为3维,并将它们在三维的坐标系中画出(用Excell);3.在三维的特征空间下,利用这30个样本点设计贝叶斯分类器,然后对这30个样本点利用贝叶斯分类器进行判别分类,给出分类的正确率,分析实验结果,并说明特征选择的依据;。
模式识别大作业
模式识别大作业1.最近邻/k近邻法一.基本概念:最近邻法:对于未知样本x,比较x与N个已知类别的样本之间的欧式距离,并决策x与距离它最近的样本同类。
K近邻法:取未知样本x的k个近邻,看这k个近邻中多数属于哪一类,就把x归为哪一类。
K取奇数,为了是避免k1=k2的情况。
二.问题分析:要判别x属于哪一类,关键要求得与x最近的k个样本(当k=1时,即是最近邻法),然后判别这k个样本的多数属于哪一类。
可采用欧式距离公式求得两个样本间的距离s=sqrt((x1-x2)^2+(y1-y2)^2)三.算法分析:该算法中任取每类样本的一半作为训练样本,其余作为测试样本。
例如iris中取每类样本的25组作为训练样本,剩余25组作为测试样本,依次求得与一测试样本x距离最近的k 个样本,并判断k个样本多数属于哪一类,则x就属于哪类。
测试10次,取10次分类正确率的平均值来检验算法的性能。
四.MATLAB代码:最近邻算实现对Iris分类clc;totalsum=0;for ii=1:10data=load('iris.txt');data1=data(1:50,1:4);%任取Iris-setosa数据的25组rbow1=randperm(50);trainsample1=data1(rbow1(:,1:25),1:4);rbow1(:,26:50)=sort(rbow1(:,26:50));%剩余的25组按行下标大小顺序排列testsample1=data1(rbow1(:,26:50),1:4);data2=data(51:100,1:4);%任取Iris-versicolor数据的25组rbow2=randperm(50);trainsample2=data2(rbow2(:,1:25),1:4);rbow2(:,26:50)=sort(rbow2(:,26:50));testsample2=data2(rbow2(:,26:50),1:4);data3=data(101:150,1:4);%任取Iris-virginica数据的25组rbow3=randperm(50);trainsample3=data3(rbow3(:,1:25),1:4);rbow3(:,26:50)=sort(rbow3(:,26:50));testsample3=data3(rbow3(:,26:50),1:4);trainsample=cat(1,trainsample1,trainsample2,trainsample3);%包含75组数据的样本集testsample=cat(1,testsample1,testsample2,testsample3);newchar=zeros(1,75);sum=0;[i,j]=size(trainsample);%i=60,j=4[u,v]=size(testsample);%u=90,v=4for x=1:ufor y=1:iresult=sqrt((testsample(x,1)-trainsample(y,1))^2+(testsample(x,2) -trainsample(y,2))^2+(testsample(x,3)-trainsample(y,3))^2+(testsa mple(x,4)-trainsample(y,4))^2); %欧式距离newchar(1,y)=result;end;[new,Ind]=sort(newchar);class1=0;class2=0;class3=0;if Ind(1,1)<=25class1=class1+1;elseif Ind(1,1)>25&&Ind(1,1)<=50class2=class2+1;elseclass3=class3+1;endif class1>class2&&class1>class3m=1;ty='Iris-setosa';elseif class2>class1&&class2>class3m=2;ty='Iris-versicolor';elseif class3>class1&&class3>class2m=3;ty='Iris-virginica';elsem=0;ty='none';endif x<=25&&m>0disp(sprintf('第%d组数据分类后为%s类',rbow1(:,x+25),ty));elseif x<=25&&m==0disp(sprintf('第%d组数据分类后为%s类',rbow1(:,x+25),'none'));endif x>25&&x<=50&&m>0disp(sprintf('第%d组数据分类后为%s类',50+rbow2(:,x),ty));elseif x>25&&x<=50&&m==0disp(sprintf('第%d组数据分类后为%s类',50+rbow2(:,x),'none'));endif x>50&&x<=75&&m>0disp(sprintf('第%d组数据分类后为%s类',100+rbow3(:,x-25),ty));elseif x>50&&x<=75&&m==0disp(sprintf('第%d组数据分类后为%s类',100+rbow3(:,x-25),'none'));endif (x<=25&&m==1)||(x>25&&x<=50&&m==2)||(x>50&&x<=75&&m==3)sum=sum+1;endenddisp(sprintf('第%d次分类识别率为%4.2f',ii,sum/75));totalsum=totalsum+(sum/75);enddisp(sprintf('10次分类平均识别率为%4.2f',totalsum/10));测试结果:第3组数据分类后为Iris-setosa类第5组数据分类后为Iris-setosa类第6组数据分类后为Iris-setosa类第7组数据分类后为Iris-setosa类第10组数据分类后为Iris-setosa类第11组数据分类后为Iris-setosa类第12组数据分类后为Iris-setosa类第14组数据分类后为Iris-setosa类第16组数据分类后为Iris-setosa类第18组数据分类后为Iris-setosa类第19组数据分类后为Iris-setosa类第20组数据分类后为Iris-setosa类第23组数据分类后为Iris-setosa类第24组数据分类后为Iris-setosa类第26组数据分类后为Iris-setosa类第28组数据分类后为Iris-setosa类第30组数据分类后为Iris-setosa类第31组数据分类后为Iris-setosa类第34组数据分类后为Iris-setosa类第37组数据分类后为Iris-setosa类第39组数据分类后为Iris-setosa类第41组数据分类后为Iris-setosa类第44组数据分类后为Iris-setosa类第45组数据分类后为Iris-setosa类第49组数据分类后为Iris-setosa类第53组数据分类后为Iris-versicolor类第54组数据分类后为Iris-versicolor类第55组数据分类后为Iris-versicolor类第57组数据分类后为Iris-versicolor类第58组数据分类后为Iris-versicolor类第59组数据分类后为Iris-versicolor类第60组数据分类后为Iris-versicolor类第61组数据分类后为Iris-versicolor类第62组数据分类后为Iris-versicolor类第68组数据分类后为Iris-versicolor类第70组数据分类后为Iris-versicolor类第71组数据分类后为Iris-virginica类第74组数据分类后为Iris-versicolor类第75组数据分类后为Iris-versicolor类第77组数据分类后为Iris-versicolor类第79组数据分类后为Iris-versicolor类第80组数据分类后为Iris-versicolor类第84组数据分类后为Iris-virginica类第85组数据分类后为Iris-versicolor类第92组数据分类后为Iris-versicolor类第95组数据分类后为Iris-versicolor类第97组数据分类后为Iris-versicolor类第98组数据分类后为Iris-versicolor类第99组数据分类后为Iris-versicolor类第102组数据分类后为Iris-virginica类第103组数据分类后为Iris-virginica类第105组数据分类后为Iris-virginica类第106组数据分类后为Iris-virginica类第107组数据分类后为Iris-versicolor类第108组数据分类后为Iris-virginica类第114组数据分类后为Iris-virginica类第118组数据分类后为Iris-virginica类第119组数据分类后为Iris-virginica类第124组数据分类后为Iris-virginica类第125组数据分类后为Iris-virginica类第126组数据分类后为Iris-virginica类第127组数据分类后为Iris-virginica类第128组数据分类后为Iris-virginica类第129组数据分类后为Iris-virginica类第130组数据分类后为Iris-virginica类第133组数据分类后为Iris-virginica类第135组数据分类后为Iris-virginica类第137组数据分类后为Iris-virginica类第142组数据分类后为Iris-virginica类第144组数据分类后为Iris-virginica类第148组数据分类后为Iris-virginica类第149组数据分类后为Iris-virginica类第150组数据分类后为Iris-virginica类k近邻法对wine分类:clc;otalsum=0;for ii=1:10 %循环测试10次data=load('wine.txt');%导入wine数据data1=data(1:59,1:13);%任取第一类数据的30组rbow1=randperm(59);trainsample1=data1(sort(rbow1(:,1:30)),1:13);rbow1(:,31:59)=sort(rbow1(:,31:59)); %剩余的29组按行下标大小顺序排列testsample1=data1(rbow1(:,31:59),1:13);data2=data(60:130,1:13);%任取第二类数据的35组rbow2=randperm(71);trainsample2=data2(sort(rbow2(:,1:35)),1:13);rbow2(:,36:71)=sort(rbow2(:,36:71));testsample2=data2(rbow2(:,36:71),1:13);data3=data(131:178,1:13);%任取第三类数据的24组rbow3=randperm(48);trainsample3=data3(sort(rbow3(:,1:24)),1:13);rbow3(:,25:48)=sort(rbow3(:,25:48));testsample3=data3(rbow3(:,25:48),1:13);train_sample=cat(1,trainsample1,trainsample2,trainsample3);%包含89组数据的样本集test_sample=cat(1,testsample1,testsample2,testsample3);k=19;%19近邻法newchar=zeros(1,89);sum=0;[i,j]=size(train_sample);%i=89,j=13[u,v]=size(test_sample);%u=89,v=13for x=1:ufor y=1:iresult=sqrt((test_sample(x,1)-train_sample(y,1))^2+(test_sample(x ,2)-train_sample(y,2))^2+(test_sample(x,3)-train_sample(y,3))^2+( test_sample(x,4)-train_sample(y,4))^2+(test_sample(x,5)-train_sam ple(y,5))^2+(test_sample(x,6)-train_sample(y,6))^2+(test_sample(x ,7)-train_sample(y,7))^2+(test_sample(x,8)-train_sample(y,8))^2+( test_sample(x,9)-train_sample(y,9))^2+(test_sample(x,10)-train_sa mple(y,10))^2+(test_sample(x,11)-train_sample(y,11))^2+(test_samp le(x,12)-train_sample(y,12))^2+(test_sample(x,13)-train_sample(y, 13))^2); %欧式距离newchar(1,y)=result;end;[new,Ind]=sort(newchar);class1=0;class 2=0;class 3=0;for n=1:kif Ind(1,n)<=30class 1= class 1+1;elseif Ind(1,n)>30&&Ind(1,n)<=65class 2= class 2+1;elseclass 3= class3+1;endendif class 1>= class 2&& class1>= class3m=1;elseif class2>= class1&& class2>= class3m=2;elseif class3>= class1&& class3>= class2m=3;endif x<=29disp(sprintf('第%d组数据分类后为第%d类',rbow1(:,30+x),m));elseif x>29&&x<=65disp(sprintf('第%d组数据分类后为第%d类',59+rbow2(:,x+6),m));elseif x>65&&x<=89disp(sprintf('第%d组数据分类后为第%d类',130+rbow3(:,x-41),m));endif (x<=29&&m==1)||(x>29&&x<=65&&m==2)||(x>65&&x<=89&&m==3) sum=sum+1;endenddisp(sprintf('第%d次分类识别率为%4.2f',ii,sum/89));totalsum=totalsum+(sum/89);enddisp(sprintf('10次分类平均识别率为%4.2f',totalsum/10));第2组数据分类后为第1类第4组数据分类后为第1类第5组数据分类后为第3类第6组数据分类后为第1类第8组数据分类后为第1类第10组数据分类后为第1类第11组数据分类后为第1类第14组数据分类后为第1类第16组数据分类后为第1类第19组数据分类后为第1类第20组数据分类后为第3类第21组数据分类后为第3类第22组数据分类后为第3类第26组数据分类后为第3类第27组数据分类后为第1类第28组数据分类后为第1类第30组数据分类后为第1类第33组数据分类后为第1类第36组数据分类后为第1类第37组数据分类后为第1类第43组数据分类后为第1类第44组数据分类后为第3类第45组数据分类后为第1类第46组数据分类后为第1类第49组数据分类后为第1类第54组数据分类后为第1类第56组数据分类后为第1类第57组数据分类后为第1类第60组数据分类后为第2类第61组数据分类后为第3类第63组数据分类后为第3类第65组数据分类后为第2类第66组数据分类后为第3类第67组数据分类后为第2类第71组数据分类后为第1类第72组数据分类后为第2类第74组数据分类后为第1类第76组数据分类后为第2类第77组数据分类后为第2类第79组数据分类后为第3类第81组数据分类后为第2类第82组数据分类后为第3类第83组数据分类后为第3类第84组数据分类后为第2类第86组数据分类后为第2类第87组数据分类后为第2类第88组数据分类后为第2类第93组数据分类后为第2类第96组数据分类后为第1类第98组数据分类后为第2类第99组数据分类后为第3类第102组数据分类后为第2类第104组数据分类后为第2类第105组数据分类后为第3类第106组数据分类后为第2类第110组数据分类后为第3类第113组数据分类后为第3类第114组数据分类后为第2类第115组数据分类后为第2类第116组数据分类后为第2类第118组数据分类后为第2类第122组数据分类后为第2类第123组数据分类后为第2类第124组数据分类后为第2类第133组数据分类后为第3类第134组数据分类后为第3类第135组数据分类后为第2类第136组数据分类后为第3类第140组数据分类后为第3类第142组数据分类后为第3类第144组数据分类后为第2类第145组数据分类后为第1类第146组数据分类后为第3类第148组数据分类后为第3类第149组数据分类后为第2类第152组数据分类后为第2类第157组数据分类后为第2类第159组数据分类后为第3类第161组数据分类后为第2类第162组数据分类后为第3类第163组数据分类后为第3类第164组数据分类后为第3类第165组数据分类后为第3类第167组数据分类后为第3类第168组数据分类后为第3类第173组数据分类后为第3类第174组数据分类后为第3类2.Fisher线性判别法Fisher 线性判别是统计模式识别的基本方法之一。
模式识别大作业
模式识别专业:电子信息工程班级:电信****班学号:********** 姓名:艾依河里的鱼一、贝叶斯决策(一)贝叶斯决策理论 1.最小错误率贝叶斯决策器在模式识别领域,贝叶斯决策通常利用一些决策规则来判定样本的类别。
最常见的决策规则有最大后验概率决策和最小风险决策等。
设共有K 个类别,各类别用符号k c ()K k ,,2,1 =代表。
假设k c 类出现的先验概率()k P c以及类条件概率密度()|k P c x 是已知的,那么应该把x 划分到哪一类才合适呢?若采用最大后验概率决策规则,首先计算x 属于k c 类的后验概率()()()()()()()()1||||k k k k k Kk k k P c P c P c P c P c P P c P c ===∑x x x x x然后将x 判决为属于kc ~类,其中()1arg max |kk Kk P c ≤≤=x若采用最小风险决策,则首先计算将x 判决为k c 类所带来的风险(),k R c x ,再将x 判决为属于kc ~类,其中()min ,kkk R c =x可以证明在采用0-1损失函数的前提下,两种决策规则是等价的。
贝叶斯决策器在先验概率()k P c 以及类条件概率密度()|k P c x 已知的前提下,利用上述贝叶斯决策规则确定分类面。
贝叶斯决策器得到的分类面是最优的,它是最优分类器。
但贝叶斯决策器在确定分类面前需要预知()k P c 与()|k P c x ,这在实际运用中往往不可能,因为()|k P c x 一般是未知的。
因此贝叶斯决策器只是一个理论上的分类器,常用作衡量其它分类器性能的标尺。
最小风险贝叶斯决策可按下列步骤进行: (1)在已知)(i P ω,)(i X P ω,i=1,…,c 及给出待识别的X 的情况下,根据贝叶斯公式计算出后验概率:∑==cj iii i i P X P P X P X P 1)()()()()(ωωωωω j=1,…,x(2)利用计算出的后验概率及决策表,按下面的公式计算出采取i a ,i=1,…,a 的条件风险∑==cj j j i i X P a X a R 1)(),()(ωωλ,i=1,2,…,a(3)对(2)中得到的a 个条件风险值)(X a R i ,i=1,…,a 进行比较,找出使其条件风险最小的决策k a ,即()()1,min k i i aR a x R a x ==则k a 就是最小风险贝叶斯决策。
华南理工大学《模式识别》大作业报告
华南理工大学《模式识别》大作业报告题目:模式识别导论实验学院计算机科学与工程专业计算机科学与技术(全英创新班)学生姓名黄炜杰学生学号 201230590051指导教师吴斯课程编号145143课程学分2 分起始日期 2015年5月18日实验内容【实验方案设计】Main steps for the project is:1.To make it more challenging, I select the larger dataset, Pedestrian, rather than thesmaller one. But it may be not wise to learning on such a large dataset, so Inormalize the dataset from 0 to 1 first and perform a k-means sampling to select the most representative samples. After that feature selection is done so as to decrease the amount of features. At last, a PCA dimension reduction is used to decrease the size of the dataset.2.Six learning algorithms including K-Nearest Neighbor, perception, decision tree,support vector machine, multi-layer perception and Naïve Bayesian are used to learn the pattern of the dataset.3.Six learning algorithm are combing into six multi-classifiers system individually,using bagging algorithm.实验过程:NormalizationThe input dataset is normalized to the range of [0, 1] so that make it suitable for performing k-means clustering on it, and also increase the speed of learning algorithms.SamplingThere are too much sample in the dataset, only a smallpart of them are enough to learn a good classifier. To select the most representative samples, k-means clustering is used to cluster the sample into c group and select r% of them.There are 14596 samples initially, but 1460 may be enough, so r=10. The selection of c should follow three criterions:a) Less drop of accuracyb) Little change about ratio of two classesc) Smaller c, lower time complexitySo I design two experiments to find the best parameter c:Experiment 1:Find out the training accuracy of different amountof cluster. The result is shown in the figure on the left. X-axis is amount of cluster and Y-axis is accuracy. Red line denotes accuracy before sampling and blue line denotes accuracy after sampling. As it’s shown in the figure, c=2, 5, 7, 9, 13 may be good choice since they have relative higher accuracy.Experiment 2:Find out the ratio of sample amount of two class. The result is shown in the figure on the right. X-axis is amount of cluster and Y-axis is the ratio. Red line denotes ratio before sampling and blue line denotes ratio after sampling. As it’s shown in the figure, c=2, 5, 9 may be good choice since the ratio do not change so much.As a result, c=5 is selected tosatisfy the three criterions.Feature selection3780 features is much more than needed to train a classifier, so I select a small part of them before learning. The target is to select most discriminative features, that is to say, select features that have largest accuracy in each step. But there are six learning algorithm in our project, it’s hard to decide which learning algorithm this feature selection process should depend on and it may also has high time complexity. So relevance, which is the correlation between feature and class is used as a discrimination measurement to select the best feature sets. But only select the most relevant features may introduce rich redundancy. So a tradeoff between relevance and redundancy should be made. An experiment about how to make the best tradeoff is done:the best amount of features isFind out the training accuracy of different amountof features. The result is shown below. X-axis is amount of features and Y-axis is accuracy. Red line denotes accuracyPCATo make the dataset smaller, features with contribution rate of PCA ≥ 85% is selected. So we finally obtain a dataset with 1460 samples and 32 features. The size of the dataset drops for 92.16% but accuracy only has 0.61% decease. So these preprocessing steps are successful to decrease the size of the dataset.Learning6 models are used in the learning steps: K-Nearest Neighbor, perception, decision tree, support vector machine, multi-layer perception and Naïve Bayesian. I designed a RBF classifier and MLP classifier at first but they are too slow for the reason that matrix manipulation hasn’t been designed carefully, so I use the function in the library instead. Parameter determination for these classifiers are:①K-NNWhen k≥5,the accuracy trends to be stable, so k=5②Decision treeMaxcrit is used as binary splitting criterion.③MLP5 units for hidden is enough。
模式识别大作业(二)
模式识别大作业(二)k-means 算法的应用一、 问题描述用c-means 算法对所给数据进行聚类,并已知类別数为2,随机初始样本聚类中心,进行10次求解,并计算聚类平均正确率。
二、 算法简介(1)J.B.MacQueen 在 1967 年提出的K-means 算法[22]到目前为止用于科学和工业应用的诸多聚类算法中一种极有影响的技术。
它是聚类方法中一个基本的划分方法,常常采用误差平方和准则函数作为聚类准则函数。
若i N 是第i 聚类i Γ中的样本数目,i m 是这些样本的均值,即1ii y m y N∈Γ=∑把i Γ中的各样本y 与均值i m 间的误差平方和对所有的类相加后为21ice i i y J y m =∈Γ=-∑∑e J 是误差平方和聚类准则,它是样本集y 和类别集Ω的函数。
e J 度量了用c 个聚类中心12,,...,c m m m 代表c 个样本子集12,,...,c ΓΓΓ时所产生的总的误差平方。
(2)K-means 算法的工作原理:算法首先随机从数据集中选取 K 个点作为初始聚类中心,然后计算各个样本到聚类中的距离,把样本归到离它最近的那个聚类中心所在的类。
计算新形成的每一个聚类的数据对象的平均值来得到新的聚类中心,如果相邻两次的聚类中心没有任何变化,说明样本调整结束,聚类准则函数 已经收敛。
本算法的一个特点是在每次迭代中都要考察每个样本的分类是否正确。
若不正确,就要调整,在全部样本调整完后,再修改聚类中心,进入下一次迭代。
如果在一次迭代算法中,所有的样本被正确分类,则不会有调整,聚类中心也不会有任何变化,这标志着 已经收敛,因此算法结束。
三、具体步骤1、 数据初始化:类别数c=2,样本类标trueflag(n,1) (其中n 为样本个数);2、 初始聚类中心:用随机函数随机产生1~n 中的2个数,选取随机数所对应的样本为初始聚类中心(mmnow);3、更新样本分类:计算每个样本到两类样本中心的距离,根据最小距离法则,样本将总是分到距离较近的类别;4、更替聚类中心:根据上一步的分类,重新计算两个聚类中心(mmnext);5、判断终止条件:当样本聚类中心不再发生变化即mmnow==mmnext时,转5);否则,更新mmnow,将mmnext附给mmnow,即mmnow=mmnext,转2);6、计算正确率:将dtat(i,1)与trueflag(i,1)(i=1~n)进行比较,统计正确分类的样本数,并计算正确率c_meanstrue(1,ii)。
上海交大模式识别大作业
x
i 1
m
i
gi
T
(2) D( x, G) x G (3)相似度
1
( x G)
2
xi g i ( x G) i 1 R ( x, G ) 1/ 2 x G m 2 m 2 x i g i i 1 i 1
阅读材料: (参考资料的阅读以下面的题目为导向,不需要细致的研读代码。 ) 边肇祺、张学工编著《模式识别》第二版,第十五章 求是科技 张宏林编著《Visual C++数字图像模式识别技术及工程实践》 ,第五、六、七、八 章 题目: (请对问题一一作答。 解答要尽量表达明白、 条理清楚。 不要求给出具体的代码实现。 ) 1)汉字识别是与生活紧密相关的一种二维信号识别问题。通过对上述材料的研读,同学们 应该对模式识别方法如何应用于实际中、 以及在实际应用中需要考虑哪些问题有了一些深入 的认识。问题: A.一般解决模式识别问题有哪几个关键步骤?给出处理一般模式识别问题步骤的流程图。 B.以汉字识别为例,预处理步骤是哪些(举出 3 种)?汉字的哪些特性可以被提取作为模 式特征(举出 5 种)?利用特征进行汉字识别分类时,要注意什么问题?有什么样的解决方 法?一般可采取哪些判别准则进行分类? 2)工厂对打上来的鱼进行分类,不同种类的鱼处理方式不 同。可是鱼的数量过大,人工分类不现实。如何利用模式识 别的方法让计算机帮我们分类? A.可能需要进行哪些预处理?你能想到哪些鱼类特性作为 分类特征?可以采取哪些对应的分类决策方法? B.在分类过程中,可能会遇到分类算法错误率高、性能不 够鲁棒,你能想出什么方法有效解决? C.文字说明一种你设计的、认为可以准确处理大多数鱼类 分类问题的分类算法,并写出算法流程图。 左图是利用传感器(如摄像机)对鱼类采样,以进行自动分 类的工厂流水线示意图。 3)人类具有很强的模式识别能力。通过视觉信息识别文字、图片和周围的环境,通过听觉 信息识别与理解语言。模式识别能力是人类智能的重要组成部分。今天,虽然人们可以利用 计算机部分实现人的视觉,听觉等模式识别能力,但是相对于浩瀚的人类智能,今天的模式 识别无论是在理论研究还是在应用水平上都仅仅只处于初级阶段。请以“模式识别,让明天 更美好”为题,设想 2000 年后,模式识别在理论上将会有那些突破,在应用中将会怎样深 刻的影响人类的工作和生活。要求: a、 体裁不限,字数不限,可以写成故事,小说或科技论文等等。 b、 文章应建立在对现存模式识别的理论分析基础之上, 通过分析统计模式识别的优点和不 足,设想 2000 年后模式识别将会得到怎样的发展。 c、 设想 2000 年模式识别应用的时候,应尽可能全面地描述模式识别在人类生活和生产中 的应用,如在工业,生活,娱乐,医疗,通信,战争等等。想象的翅膀能飞多远,就让 它飞多远。 d、 如果可以包含心理学,生理学,神经学,或数学,信息学等方面的描述更好。
模式识别课后习题答案
• 2.4 分别写出在以下两种情况 1. P (x|w1 ) = P (x|w2 ) 2. P (w1 ) = P (w2 ) 下的最小错误率贝叶斯决策规则。 解: 当P (x|w1 ) = P (x|w2 )时,如果P (w1 ) > P (w2 ),则x ∈ w1 ,否则x ∈ w2 。 当P (w1 ) = P (w2 )时,如果P (x|w1 ) > P (x|w2 ),则x ∈ w1 ,否则x ∈ w2 。 • 2.5 1. 对c类情况推广最小错误率率贝叶斯决策规则; 2. 指出此时使错误率最小等价于后验概率最大,即P (wi |x) > P (wj |x) 对一切j ̸= i 成立时,x ∈ wi 。 2
模式识别(第二版)习题解答
解:对于c类情况,最小错误率贝叶斯决策规则为: 如果 P (wi |x) = max P (wj |x),则x ∈ wi 。利用贝叶斯定理可以将其写成先验概率和
j =1,...,c
类条件概率相联系的形式,即 如果 p(x|wi )P (wi ) = max p(x|wj )P (wj ),则x ∈ wi 。
• 2.16 证明M ahalanobis距离r符合距离定义三定理,即 – (1) r(a, b) = r(b, a) – (2) 当且仅当a = b时,r(a, b) = 0 – (3) r(a, c) ≤ r(a, b) + r(b, c) 证明: (1) r(a, b) = (a − b)T Σ−1 (a − b) = (b − a)T Σ−1 (b − a) = r(b, a) (2) Σ为半正定矩阵所以r(a, b) = (a − b)T Σ−1 (a − b) ≥ 0,只有当a = b时,才有r(a, b) = 0。 (3) Σ−1 可对角化,Σ−1 = P ΛP T • 2.17 若将Σ−1 矩阵写为:Σ−1 h1d h2d ,证明M ahalanobis距离平方为 . . . hdd
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式识别大作业班级 021252 姓名 谭红光 学号 021251281.线性投影与Fisher 准则函数各类在d 维特征空间里的样本均值向量:∑∈=ik X x kii xn M 1,2,1=i (1)通过变换w 映射到一维特征空间后,各类的平均值为:∑∈=ik Y y kii yn m 1,2,1=i (2)映射后,各类样本“类内离散度”定义为:22()k ii k i y Y S y m ∈=-∑,2,1=i (3)显然,我们希望在映射之后,两类的平均值之间的距离越大越好,而各类的样本类内离散度越小越好。
因此,定义Fisher 准则函数:2122212||()F m m J w s s -=+ (4)使FJ 最大的解*w 就是最佳解向量,也就是Fisher 的线性判别式. 从)(w J F 的表达式可知,它并非w 的显函数,必须进一步变换。
已知:∑∈=ik Y y kii yn m 1,2,1=i , 依次代入上两式,有:i TX x ki Tk X x Ti i M w x n w x w n m ik ik ===∑∑∈∈)1(1,2,1=i (5) 所以:221221221||)(||||||||M M w M w M w m m T T T -=-=-w S w w M M M M w b T T T =--=))((2121 (6)其中:Tb M M M M S ))((2121--= (7)bS 是原d 维特征空间里的样本类内离散度矩阵,表示两类均值向量之间的离散度大小,因此,b S 越大越容易区分。
将(4.5-6)i Ti M w m =和(4.5-2)∑∈=ik X x kii xn M 1代入(4.5-4)2iS 式中:∑∈-=ik X x iT k T i M w x w S 22)(∑∈⋅--⋅=ik X x Tik i k T w M x M x w ))(( w S w i T= (8)其中:T iX x k i k i M x M x S ik ))((--=∑=,2,1=i (9)因此:w S w w S S w S S w T T =+=+)(212221 (10)显然:21S S S w += (11)w S 称为原d 维特征空间里,样本“类内离散度”矩阵。
w S 是样本“类内总离散度”矩阵。
为了便于分类,显然iS 越小越好,也就是wS 越小越好。
将上述的所有推导结果代入)(w J F 表达式:可以得到:)(211*M M S w w -=-λγ其中,λγ是一个比例因子,不影响*w 的方向,可以删除,从而得到最后解:)(211*M M S w w -=- (12)就使)(w J F 取得最大值,*w 可使样本由d 维空间向一维空间映射,其投影方向最好。
)(211*M M S w w -=-是一个Fisher 线性判断式.这个向量指出了相对于Fisher 准则函数最好的投影线方向。
2.近邻法线简述最近邻(Nearest Neighbor ,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。
该方法的思路是:如果一个样本在特征空间中的k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
KNN 算法中,所选择的邻居都是已经正确分类的对象。
该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN 方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。
由于KNN 方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN 方法较其他方法更为适合。
将与测试样本最近邻样本的类别作为决策的结果。
对一个C 类别问题,每类有i N 个样本,1,2,i C =,则第i 类i ω的判别函数为:()min ||||,1,2,,k i i i kg x x x k N =-= (1)因此,最近邻决策规则: 若()min (),1,2,j i ig x g x i c == (2)3.设计思路根据公式用Matlab 计算出w0,然后对测试数据进行与w0的比较进行分类。
在用欧式距离进行分类。
流程图:算法的流程设计图。
2.程序代码:mine=xlsread('C:\Users\Administrator\Desktop\mine.xls'); %导入mine数据rock=xlsread('C:\Users\Administrator\Desktop\rock.xls'); %导入rock数据amine=randsample(111,55,'false'); %产生55个随机数作为mine行下标bmine=zeros(55,60);for i=1:55for j=1:60bmine(i,j)=mine(amine(i,1),j);mine(amine(i,1),j)=2;endend%选出mine训练样本dmine=zeros(56,60);r=1;for i=1:111if mine(i,1)==2i=i+1;else for j=1:60dmine(r,j)=mine(i,j);endr=r+1;endend%选出mine测试样本cmine=zeros(1,60);for i=1:60for j=1:55cmine(1,i)=cmine(1,i)+bmine(j,i);endendarock=randsample(97,48,'false');brock=zeros(48,60);for i=1:48for j=1:60brock(i,j)=rock(arock(i,1),j);rock(arock(i,1),j)=2;endend%选出rock的训练样本drock=zeros(49,60);p=1;for i=1:97if rock(i,1)==2i=i+1;else for j=1:60drock(p,j)=rock(i,j);endp=p+1;endend%选出rock的测试样本crock=zeros(1,60);for i=1:60for j=1:48crock(1,i)=crock(1,i)+brock(j,i);endend%fisher线性判别mm=cmine/55; %mine的类均值向量mr=crock/48; %rock的类均值向量mm=mm';mr=mr';s_mine=zeros(60,60);s_rock=zeros(60,60);for i=1:55s_mine=s_mine+(bmine(i,:)'-mm)*(bmine(i,:)'-mm)';end%mine的类内离散度矩阵for i=1:48s_rock=s_rock+(brock(i,:)'-mr)*(brock(i,:)'-mr)';end%rock的类内离散度矩阵sw=s_mine+s_rock;w1=inv(sw)*(mm-mr); %最佳投影方向w0=w1'*(mm+mr)/2; %阈值%画坐标轴x=-1:2;y=-1:2;hold on;plot(x,y);y=w0;plot(y,y,'xk'); %阈值的坐标text(0.6,0.5,'w');text(-0.4,0,'rock');text(0.4,0.2,'mine');title('fisher02125128');xlabel('mine');ylabel('rock');%测验分类器emine=0;erock=0;for i=1:56y=w1'*dmine(i,:)';if y>w0plot(y,y,'og'); %分对的mine样本的坐标else plot(y,y,'+m');emine=emine+1; %mine分错的个数endendfor i=1:49y=w1'*drock(i,:)';if y<w0plot(y,y,'oc'); %分对的rock样本的坐标else plot(y,y,'+r');erock=erock+1; %rock分错的个数endenddisp(w0);disp(erock/97);disp(emine/111);text(-0.2,0.63,['errmine:' num2str(emine*100/111) '%']); text(-0.2,-0.43,['errrock:' num2str(erock*100/97) '%']); %最近临法eemine=0;eerock=0;for i=1:56min1=inf;min2=inf;for j=1:55x=norm(dmine(i,1:60)-bmine(j,:));if(x<min1)min1=x;endendfor jj=1:48y=norm(dmine(i,1:60)-brock(jj,:));if(y<min2)min2=y;endendif(min1>min2)eemine=eemine+1;endendfor i=1:49min3=inf;min4=inf;for j=1:55xx=norm(drock(i,1:60)-bmine(j,:));if(xx<min3)min3=xx;endendfor jj=1:48yy=norm(drock(i,1:60)-brock(jj,:));if(yy<min4)min4=yy;endendif(min4>min3)eerock=eerock+1;endenddisp(eemine/111);disp(eerock/97);3.运行结果截图4.结果分析次数 1 2 3 4 5 6 7 8 9 10 平均值erock 0.1546 0.1753 0.1959 0.1856 0.0722 0.1753 0.1959 0.134 0.2165 0.1546 0.1672 emine 0.1351 0.1712 0.1081 0.1892 0.1532 0.0991 0.1261 0.2072 0.1532 0.1532 0.1496 eemine 0.0721 0.0901 0.0901 0.0811 0.0811 0.0721 0.0811 0.0631 0.0721 0.0901 0.0793 eerock 0.1753 0.1856 0.1753 0.0928 0.1649 0.1546 0.1341 0.1959 0.1856 0.1649 0.1629可以看出近邻法得到的识别率比fisher得到的识别率高,这也说明了近邻法比fisher更优。