华南理工大学《模式识别》大作业报告
模式识别大作业02125128(修改版)
模式识别大作业班级 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 维特征空间里,样本“类内离散度”矩阵。
《模式识别》课程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方法的理解等。
模式识别专业实践报告(2篇)
第1篇一、实践背景与目的随着信息技术的飞速发展,模式识别技术在各个领域得到了广泛应用。
作为人工智能领域的一个重要分支,模式识别技术对于图像处理、语音识别、生物识别等领域的发展具有重要意义。
为了更好地理解和掌握模式识别技术,提高实际应用能力,我们组织了一次为期一个月的模式识别专业实践。
本次实践旨在通过实际操作,加深对模式识别理论知识的理解,提高解决实际问题的能力。
二、实践内容与过程1. 实践内容本次实践主要包括以下几个方面:(1)图像识别:利用深度学习算法进行图像分类、目标检测等。
(2)语音识别:实现语音信号处理、特征提取和识别。
(3)生物识别:研究指纹识别、人脸识别等生物特征识别技术。
(4)模式分类:运用机器学习算法进行数据分类和聚类。
2. 实践过程(1)理论学习:在实践开始前,我们首先对模式识别的基本理论进行了系统学习,包括图像处理、信号处理、机器学习等相关知识。
(2)项目准备:根据实践内容,我们选取了具有代表性的项目进行实践,如基于深度学习的图像识别、基于HMM的语音识别等。
(3)实验设计与实施:在导师的指导下,我们设计了实验方案,包括数据预处理、模型选择、参数调整等。
随后,我们使用Python、C++等编程语言进行实验编程,并对实验结果进行分析。
(4)问题分析与解决:在实验过程中,我们遇到了许多问题,如数据不足、模型效果不佳等。
通过查阅文献、请教导师和团队成员,我们逐步解决了这些问题。
三、实践成果与分析1. 图像识别我们使用卷积神经网络(CNN)对CIFAR-10数据集进行了图像分类实验。
实验结果表明,经过多次迭代优化,模型在测试集上的准确率达到89.5%,优于传统机器学习方法。
2. 语音识别我们采用HMM(隐马尔可夫模型)对TIMIT语音数据集进行了语音识别实验。
实验结果表明,经过特征提取和模型训练,模型在测试集上的词错误率(WER)为16.3%,达到了较好的识别效果。
3. 生物识别我们研究了指纹识别和人脸识别技术。
模式识别实习报告
一、实习背景随着科技的飞速发展,人工智能、机器学习等技术在各个领域得到了广泛应用。
模式识别作为人工智能的一个重要分支,具有广泛的应用前景。
为了更好地了解模式识别技术,提高自己的实践能力,我在2023年暑假期间参加了某科技有限公司的模式识别实习。
二、实习单位简介某科技有限公司是一家专注于人工智能、大数据、云计算等领域的科技创新型企业。
公司致力于为客户提供智能化的解决方案,业务涵盖智能识别、智能监控、智能分析等多个领域。
此次实习,我将在该公司模式识别部门进行实践学习。
三、实习内容1. 实习前期(1)了解模式识别的基本概念、原理和应用领域;(2)熟悉模式识别的相关算法,如神经网络、支持向量机、决策树等;(3)掌握Python编程语言,学会使用TensorFlow、Keras等深度学习框架。
2. 实习中期(1)参与实际项目,负责模式识别算法的设计与实现;(2)与团队成员协作,完成项目需求分析、算法优化和系统测试;(3)撰写项目报告,总结实习过程中的收获与不足。
3. 实习后期(1)总结实习期间的学习成果,撰写实习报告;(2)针对实习过程中遇到的问题,查找资料、请教同事,提高自己的解决问题的能力;(3)为后续实习工作做好充分准备。
四、实习收获与体会1. 理论与实践相结合通过实习,我深刻体会到理论与实践相结合的重要性。
在实习过程中,我将所学的模式识别理论知识运用到实际项目中,提高了自己的动手能力。
同时,通过解决实际问题,我更加深入地理解了模式识别算法的原理和应用。
2. 团队协作能力实习期间,我学会了与团队成员有效沟通、协作。
在项目中,我们共同面对挑战,分工合作,共同完成项目任务。
这使我认识到团队协作的重要性,为今后的工作打下了基础。
3. 解决问题的能力在实习过程中,我遇到了许多问题。
通过查阅资料、请教同事、独立思考等方式,我逐渐学会了如何分析问题、解决问题。
这种能力对我今后的学习和工作具有重要意义。
4. 深度学习框架的使用实习期间,我学会了使用TensorFlow、Keras等深度学习框架。
模式识别实习报告
实习报告一、实习背景及目的随着科技的飞速发展,模式识别技术在众多领域发挥着越来越重要的作用。
模式识别是指对数据进行分类、识别和解释的过程,其应用范围广泛,包括图像处理、语音识别、机器学习等。
为了更好地了解模式识别技术的原理及其在实际应用中的重要性,我参加了本次模式识别实习。
本次实习的主要目的是:1. 学习模式识别的基本原理和方法;2. 掌握模式识别技术在实际应用中的技巧;3. 提高自己的动手实践能力和团队协作能力。
二、实习内容及过程实习期间,我们团队共完成了四个模式识别项目,分别为:手写数字识别、图像分类、语音识别和机器学习。
下面我将分别介绍这四个项目的具体内容和过程。
1. 手写数字识别:手写数字识别是模式识别领域的一个经典项目。
我们使用了MNIST数据集,这是一个包含大量手写数字图片的数据集。
首先,我们对数据集进行预处理,包括归一化、数据清洗等。
然后,我们采用卷积神经网络(CNN)作为模型进行训练,并使用交叉验证法对模型进行评估。
最终,我们得到了一个识别准确率较高的模型。
2. 图像分类:图像分类是模式识别领域的另一个重要应用。
我们选择了CIFAR-10数据集,这是一个包含大量彩色图像的数据集。
与手写数字识别项目类似,我们先对数据集进行预处理,然后采用CNN进行训练。
在模型训练过程中,我们尝试了不同的优化算法和网络结构,以提高模型的性能。
最终,我们得到了一个识别准确率较高的模型。
3. 语音识别:语音识别是模式识别领域的又一项挑战。
我们使用了TIMIT数据集,这是一个包含大量语音样本的数据集。
首先,我们对语音样本进行预处理,包括特征提取、去噪等。
然后,我们采用循环神经网络(RNN)作为模型进行训练。
在模型训练过程中,我们尝试了不同的优化算法和网络结构。
最后,我们通过对模型进行评估,得到了一个较为可靠的语音识别系统。
4. 机器学习:机器学习是模式识别领域的基础。
我们使用了UCI数据集,这是一个包含多个数据集的数据集。
模式识别大作业
模式识别大作业引言:转眼之间,研一就结束了。
这学期的模式识别课也接近了尾声。
我本科是机械专业,编程和算法的理解能力比较薄弱。
所以虽然这学期老师上课上的很精彩,但是这学期的模式识别课上的感觉还是有点吃力。
不过这学期也加强了编程的练习。
这次的作业花了很久的时间,因为平时自己的方向是主要是图像降噪,自己在看这一块图像降噪论文的时候感觉和模式识别的方向结合的比较少。
我看了这方面的模式识别和图像降噪结合的论文,发现也比较少。
在思考的过程中,我想到了聚类的方法。
包括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 用身高和/或体重数据进行性别分类(一)基本要求:用和的数据作为训练样本集,建立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)。
模式识别实习报告
一、贝叶斯估计做分类【问题描述】实习题目一:用贝叶斯估计做分类。
问题描述:给出试验区裸土加水田的tif图像,要求通过贝叶斯估计算法对房屋、水田及植被进行分类。
问题分析:首先通过目视解译法对图像进行分类,获取裸土、水田和植被的DN值,在此基础上,通过该部分各个类别的面积计算先验概率,然后带入公式进行计算,从而对整个图像进行分类。
【模型方法】与分布有关的统计分类方法主要有最大似然/ 贝叶斯分类。
最大似然分类是图像处理中最常用的一种监督分类方法,它利用了遥感数据的统计特征,假定各类的分布函数为正态分布,在多变量空间中形成椭圆或椭球分布,也就是和中个方向上散布情况不同,按正态分布规律用最大似然判别规则进行判决,得到较高准确率的分类结果。
否则,用平行六面体或最小距离分类效果会更好。
【方案设计】①确定需要分类的地区和使用的波段和特征分类数,检查所用各波段或特征分量是否相互已经位置配准;②根据已掌握的典型地区的地面情况,在图像上选择训练区;③计算参数,根据选出的各类训练区的图像数据,计算和确定先验概率;④分类,将训练区以外的图像像元逐个逐类代入公式,对于每个像元,分几类就计算几次,最后比较大小,选择最大值得出类别;⑤产生分类图,给每一类别规定一个值,如果分10 类,就定每一类分别为1 ,2 ……10 ,分类后的像元值便用类别值代替,最后得到的分类图像就是专题图像. 由于最大灰阶值等于类别数,在监视器上显示时需要给各类加上不同的彩色;⑥检验结果,如果分类中错误较多,需要重新选择训练区再作以上各步,直到结果满意为止。
【结果讨论】如图所示,通过贝叶斯算法,较好地对图像完成了分类,裸土、植被和水田三个类别清晰地判别出来。
在计算先验概率时,选择何种数据成为困扰我的一个问题。
既有ENVI自身提供的精确的先验概率值,也可以自己通过计算各个类别的面积,从而获取大致的先验概率值。
最后,在田老师的讲解下,我知道了虽然数据可能不太精确,但是,计算先验概率时,总体的倾向是一致的,所以在最后判别时,因此而引起的误差是微乎其微的,所以,一定要弄清楚算法原理,才能让自己的每一步工作都有理可循。
模式识别大作业
模式识别大作业(总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 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
模式识别实验【范本模板】
《模式识别》实验报告班级:电子信息科学与技术13级02 班姓名:学号:指导老师:成绩:通信与信息工程学院二〇一六年实验一 最大最小距离算法一、实验内容1. 熟悉最大最小距离算法,并能够用程序写出。
2. 利用最大最小距离算法寻找到聚类中心,并将模式样本划分到各聚类中心对应的类别中.二、实验原理N 个待分类的模式样本{}N X X X , 21,,分别分类到聚类中心{}N Z Z Z , 21,对应的类别之中.最大最小距离算法描述:(1)任选一个模式样本作为第一聚类中心1Z 。
(2)选择离1Z 距离最远的模式样本作为第二聚类中心2Z 。
(3)逐个计算每个模式样本与已确定的所有聚类中心之间的距离,并选出其中的最小距离.(4)在所有最小距离中选出一个最大的距离,如果该最大值达到了21Z Z -的一定分数比值以上,则将产生最大距离的那个模式样本定义为新增的聚类中心,并返回上一步.否则,聚类中心的计算步骤结束。
这里的21Z Z -的一定分数比值就是阈值T ,即有:1021<<-=θθZ Z T(5)重复步骤(3)和步骤(4),直到没有新的聚类中心出现为止。
在这个过程中,当有k 个聚类中心{}N Z Z Z , 21,时,分别计算每个模式样本与所有聚类中心距离中的最小距离值,寻找到N 个最小距离中的最大距离并进行判别,结果大于阈值T 是,1+k Z 存在,并取为产生最大值的相应模式向量;否则,停止寻找聚类中心。
(6)寻找聚类中心的运算结束后,将模式样本{}N i X i ,2,1, =按最近距离划分到相应的聚类中心所代表的类别之中。
三、实验结果及分析该实验的问题是书上课后习题2。
1,以下利用的matlab 中的元胞存储10个二维模式样本X {1}=[0;0];X{2}=[1;1];X {3}=[2;2];X{4}=[3;7];X{5}=[3;6]; X{6}=[4;6];X{7}=[5;7];X{8}=[6;3];X{9}=[7;3];X{10}=[7;4];利用最大最小距离算法,matlab 运行可以求得从matlab 运行结果可以看出,聚类中心为971,,X X X ,以1X 为聚类中心的点有321,,X X X ,以7X 为聚类中心的点有7654,,,X X X X ,以9X 为聚类中心的有1098,,X X X 。
模式识别大作业
模式识别大作业共同空间模式及其几种改进方法的研究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表示每个通道的采样点数目。
华南理工大学《模式识别》大作业报告
华南理工大学《模式识别》大作业报告题目:模式识别导论实验学院计算机科学与工程专业计算机科学与技术(全英创新班)学生姓名黄炜杰学生学号 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。
模式识别方法大作业实验报告
《模式识别导论》期末大作业2010-2011-2学期第 3 组《模式识别》大作业人脸识别方法一---- 基于PCA 和欧几里得距离判据的模板匹配分类器一、 理论知识1、主成分分析主成分分析是把多个特征映射为少数几个综合特征的一种统计分析方法。
在多特征的研究中,往往由于特征个数太多,且彼此之间存在着一定的相关性,因而使得所观测的数据在一定程度上有信息的重叠。
当特征较多时,在高维空间中研究样本的分布规律就更麻烦。
主成分分析采取一种降维的方法,找出几个综合因子来代表原来众多的特征,使这些综合因子尽可能地反映原来变量的信息,而且彼此之间互不相关,从而达到简化的目的。
主成分的表示相当于把原来的特征进行坐标变换(乘以一个变换矩阵),得到相关性较小(严格来说是零)的综合因子。
1.1 问题的提出一般来说,如果N 个样品中的每个样品有n 个特征12,,n x x x ,经过主成分分析,将它们综合成n 综合变量,即11111221221122221122n n n n n n n nn ny c x c x c x y c x c x c x y c x c x c x =+++⎧⎪=+++⎪⎨⎪⎪=+++⎩ij c 由下列原则决定:1、i y 和j y (i j ≠,i,j = 1,2,...n )相互独立;2、y 的排序原则是方差从大到小。
这样的综合指标因子分别是原变量的第1、第2、……、第n 个主分量,它们的方差依次递减。
1.2 主成分的导出我们观察上述方程组,用我们熟知的矩阵表示,设12n x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦是一个n 维随机向量,12n y y Y y ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦是满足上式的新变量所构成的向量。
于是我们可以写成Y=CX,C 是一个正交矩阵,满足CC ’=I 。
坐标旋转是指新坐标轴相互正交,仍构成一个直角坐标系。
变换后的N 个点在1y 轴上有最大方差,而在n y 轴上有最小方差。
模式识别大作业136
模式识别大作业姓名:杨铠烨学号:02125136一、对sonar中数据(如表1所示)进行分类,用fisher判别法:表1 实验数据类别数特征维数样本个数=97(rock)sonar 2 60=111(mine)二、设计思路1、fisher 线性判别算法思路:用训练样本求出d维空间到一维空间的投影方向w,带入测试样本求出一维样本集合y,进而求出样本均值,接着可求出阈值y0,将y和y0比较即可分类。
注:(1)、先在matlab中进行数据的导入,用fisher线性判别时,将所调用的数据转置。
(2)、每一类数据调用一半作为训练样本,fisher线性判别中,调用mean 函数计算样本均值向量。
(3)、累加可用for循环实现,最后输出用disp函数。
三、代码1、fisher-----sonarn=1;for i=2:12:1154rock1(n,:)=reshape(rock(i:i+9,1:6)',1,60);n=n+1;endn=1;for i=2:12:1322mine1(n,:)=reshape(mine(i:i+9,1:6)',1,60);n=n+1;end//由于Excel中的数据不规整,先初步处理数据so11=rock1(1:49,:);so22=mine1(1:56,:);so1=so11’;so2=so22’;m1=mean(so1,2);m2=mean(so2,2);s1=zeros(60,60);s2=zeros(60,60);for n=1:49s1=s1+(so1(:,n)-m1)*(so1(:,n)-m1)’;endfor n=1:56s2=s2+(so2(:,n)-m2)*(so2(:,n)-m2)’; endsw=s1+s2;w=inv(sw)*(m1-m2);sonar11=rock1(50:97,:);sonar22=mine1(57:111,:);sonar1=sonar11’;sonar2=sonar22’;y1=w’*sonar1;y2=w’*sonar2;m11=mean(y1,2);m22=mean(y2,2);y01=(m11+m22)/2;count1=0;count2=0;for n=1:48if y1(1,n)>y01count1=count1+1;elsecount2=count2+1;endendfor n=1:55if y2(1,n)>y01count1=count1+1;elsecount2=count2+1;endenddisp(count1);disp(count2);四、matlab部分程序运行截图1、向matlab中导入数据,并初步整理2、分别取两组数据的前半部分求出到一维空间的投影方向w3、用剩下的一半数据作为测试样本,分别求出一维样本集合y1和y2,进而求出样本均值m11和m22,接着求出阈值y01,进而比较分类4、最后得到的count1和count2的值,可以说明fisher判别法的效果。
模式识别期末大作业报告
模式识别期末作业——BP_Adaboost分类器设计目录1 BP_ Adaboost分类器设计 (1)1.1 BP_ Adaboost模型 (1)1.2 公司财务预警系统介绍 (1)1.3模型建立 (1)1.4编程实现 (3)1.4. 1数据集选择 (3)1.4.2弱分类器学习分类 (3)1.4.3强分类器分类和结果统计 (4)1.5结果今析 (5)1 BP_ Adaboost分类器设计1.1 BP_ Adaboost模型Adaboost算法的思想是合并多个“弱”分类器的输出以产生有效分类。
其主要步骤为:首先给出弱学习算法和样本空间((x, y),从样本空间中找出m组训练数据,每组训练数据的权重都是1 /m。
.然后用弱学习算法迭代运算T次,每次运算后都按照分类结果更新训练数据权重分布,对于分类失败的训练个体赋予较大权重,下一次迭代运算时更加关注这些训练个体.弱分类器通过反复迭代得到一个分类函数序列f1 ,f2,...,fT,每个分类函数赋予一个权重,分类结果越好的函数,其对应权重越大.T次迭代之后,最终强分类函数F由弱分类函数加权得到。
BP_Adaboost模型即把BP神经网络作为弱分类器.反复训练BP神经网络预测样本输出.通过Adaboost算法得到多个BP神经网络弱分类器组成的强分类器。
1.2 公司财务预警系统介绍公司财务预警系统是为了防止公司财务系统运行偏离预期目标而建立的报瞥系统,具有针对性和预测性等特点。
它通过公司的各项指标综合评价并顶测公司财务状况、发展趋势和变化,为决策者科学决策提供智力支持。
财务危机预警指标体系中的指标可分为表内信息指标、盈利能力指标、偿还能力指标、成长能力指标、线性流量指标和表外信息指标六大指标,每项大指标又分为若干小指标,如盈利能力指标又可分为净资产收益率、总资产报酬率、每股收益、主营业务利润率和成本费用利润率等。
在用于公司财务预瞥预测时,如果对所有指标都进行评价后综合,模型过于复杂,并且各指标间相关性较强,因此在模型建立前需要筛选指标。
模式识别方PCA实验报告
模式识别作业《模式识别》大作业人脸识别方法一 ---- 基于PCA 和欧几里得距离判据的模板匹配分类器一、 理论知识1、主成分分析主成分分析是把多个特征映射为少数几个综合特征的一种统计分析方法。
在多特征的研究中,往往由于特征个数太多,且彼此之间存在着一定的相关性,因而使得所观测的数据在一定程度上有信息的重叠。
当特征较多时,在高维空间中研究样本的分布规律就更麻烦。
主成分分析采取一种降维的方法,找出几个综合因子来代表原来众多的特征,使这些综合因子尽可能地反映原来变量的信息,而且彼此之间互不相关,从而达到简化的目的。
主成分的表示相当于把原来的特征进行坐标变换(乘以一个变换矩阵),得到相关性较小(严格来说是零)的综合因子。
1.1 问题的提出一般来说,如果N 个样品中的每个样品有n 个特征12,,n x x x ,经过主成分分析,将它们综合成n 综合变量,即11111221221122221122n n n n n n n nn ny c x c x c x y c x c x c x y c x c x c x =+++⎧⎪=+++⎪⎨⎪⎪=+++⎩ij c 由下列原则决定:1、i y 和j y (i j ≠,i,j = 1,2,...n )相互独立;2、y 的排序原则是方差从大到小。
这样的综合指标因子分别是原变量的第1、第2、……、第n 个主分量,它们的方差依次递减。
1.2 主成分的导出我们观察上述方程组,用我们熟知的矩阵表示,设12n x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦是一个n 维随机向量,12n y y Y y ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦是满足上式的新变量所构成的向量。
于是我们可以写成Y=CX,C 是一个正交矩阵,满足CC ’=I 。
坐标旋转是指新坐标轴相互正交,仍构成一个直角坐标系。
变换后的N 个点在1y 轴上有最大方差,而在n y 轴上有最小方差。
同时,注意上面第一条原则,由此我们要求i y 轴和j y 轴的协方差为零,那么要求T YY =Λ12n λλλ⎡⎤⎢⎥⎢⎥Λ=⎢⎥⎢⎥⎣⎦令TR XX =,则T TRC C =Λ经过上面式子的变换,我们得到以下n 个方程111111212112111221122111121211()0()0()0n n n n n n nn n r c r c r c r c r c r c r c r c r c λλλ-+++=+-++=+++-=1.3 主成分分析的结果我们要求解出C ,即解出上述齐次方程的非零解,要求ij c 的系数行列式为0。
模式识别实习报告(K—L变换)
模式识别实习报告(K—L变换)班级:姓名:学号:一、编程要求:编程实现KL变换,并对TM六波段图像进行演算。
KL变换的思想是:从n维特征选取m维特征,删去的n-m维特征不一定就是无用的信息,如何在信息损失最小的情况下选取特征,在理论上就显得更严密些。
通常采用正交变换,得到新的经变换的模式,以保证信息损失最小情况下获得有利于分类的特征。
二、编程思想:将6副图象依次输入获得灰度值存在一个6*size(size为一副图象的像素数)的二维数组中,计算每个波段的灰度均值,然后计算协方差矩阵,得出特征值和特征向量,再重新计算要输出的处理的图象的灰度。
三、核心代码:1、读入图像数据void CKLchangeView::Oninput() //TM图象数据读入{AfxMessageBox("注意:请一次将6副图象都读入!");//读图象的方法int flag=0;while(flag<6){CFileDialog dlg(TRUE,"bmp",".bmp");if(dlg.DoModal()==IDOK){m_NewFileName[flag]=dlg.GetFileName();for(int j=0;j<5;j++){if(flag==j||m_NewFileName[flag]!=m_NewFileName[j]) continue;else{AfxMessageBox("已打开过的图象!请按方法重新打开!");flag=0;for(int i=0;i<6;i++) m_NewFileName[i]="";return;}}NewFileName=m_NewFileName[flag];flag++;}//判断是否是已经打开的图象,若已经打开,则要重新按方法打开else //不读图象,或是只是要看图象{for(int i=0;i<6;i++) m_NewFileName[i]="";return;}CDC *pDC = GetWindowDC();CFile f(NewFileName,0);m_pDib.Read(&f);//读图象if(m_pDib.m_nColorTableEntries!=256)//判断是否是灰度图象{AfxMessageBox("请打开灰度图象!");return;}CKLchangeDoc* pDoc = GetDocument();pDoc->pDib=&m_pDib;OnDraw(pDC);//调用OnDraw函数绘图sizeImage = m_pDib.GetDimensions();sizeSaveImage = m_pDib.GetDibSaveDim();a=sizeSaveImage.cx * sizeSaveImage.cy;//象素数if(flag==1) tm=CMatrix(6,a);//开第一副图象时为矩阵分配内存//将每幅图象象素灰度值放入矩阵中if(flag==1)for(int i=0;i<a;i++){tm.m_pData[i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeI mage.cx);}if(flag==2)for(int i=0;i<a;i++){tm.m_pData[a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%si zeImage.cx);}if(flag==3)for(int i=0;i<a;i++){tm.m_pData[2*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i% sizeImage.cx);}if(flag==4)for(int i=0;i<a;i++){tm.m_pData[3*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i% sizeImage.cx);}if(flag==5)for(int i=0;i<a;i++){tm.m_pData[4*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i% sizeImage.cx);}if(flag==6)for(int i=0;i<a;i++){tm.m_pData[5*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i% sizeImage.cx);}}}2、KL变换计算void CKLchangeView::OnKl() //KL变换计算{int i,j;xfea.Init(6,1);xfeat.Init(1,6);temp=CMatrix(6,6);feature=new double[6];fea.Init(6,6);double tmave[6];//求每幅图象的灰度均值for (i=0;i<6;i++){tmave[i]=0;for(j=0;j<a;j++){tmave[i]+=tm.m_pData[i*a+j];}tmave[i]/=(double)a;}//求方差矩阵Rfor(j=0;j<36;j++){temp.m_pData[j]=0.0;for(i=0;i<a;i++){temp.m_pData[j]+=(tm.m_pData[(j/6)*a+i%6]-tmave[j/6])*(tm.m_pData[(j%6)*a+i%6 ]-tmave[j%6]);}temp.m_pData[j]/=(double)a;}temp.JacobiEigenv2(feature, fea, 0.000001);//求特征值和特征向量double t=0.0;double featuretemp[6];//临时变量for(i=0;i<6;i++)featuretemp[i]=feature[i];//给临时数组赋值for(i=0;i<6;i++)//"冒泡法"将特征值排序for(j=0;j<5;j++)if(feature[j]>feature[j+1]){t=feature[j];feature[j]=feature[j+1];feature[j+1]=t;}for(i=0;i<6;i++)//求出特征值排序后对应在特征值数组中的位置for(j=0;j<6;j++)if(feature[i]==featuretemp[j]){index[i]=j;}}void CKLchangeView::OnFirst() //第一主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[5]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnFive() //第五主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[1]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnFour() //第四主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[2]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnSecond() //第二主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[4]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnSix() //第六主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[0]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnThird() //第三主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[3]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::Draw() //图象输出{int i;for(i=0;i<a;i++)//处理越界的灰度值{if(result.m_pData[i]<0) result.m_pData[i]=0;if(result.m_pData[i]>255) result.m_pData[i]=255;}for (i = 0; i <a; i ++)//重新给图象每个象素赋灰度值{unsigned char*pData=m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImage.cx;*pData=(BYTE)(long)(result.m_pData[i]+0.5);}CDC *pDC = GetWindowDC();CKLchangeDoc* pDoc = GetDocument();pDoc->pDib=&m_pDib;OnDraw(pDC);//将处理后图象绘出}四、实习总结通过本次实习,我对K—L变换有了进一步的了解,学会了用K—L变换来进行分类,对我个人的编程能力有了比较大的提高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南理工大学《模式识别》大作业报告题目:模式识别导论实验学院计算机科学与工程专业计算机科学与技术(全英创新班)学生姓名黄炜杰学生学号201230590051指导教师吴斯课程编号145143课程学分2分起始日期2015年5月18日实验概述【实验目的及要求】Purpose:Develop classifiers,which take input features and predict the labels.Requirement:•Include explanations about why you choose the specific approaches.•If your classifier includes any parameter that can be adjusted,please report the effectiveness of the parameter on the final classification result.•In evaluating the results of your classifiers,please compute the precision and recall values of your classifier.•Partition the dataset into2folds and conduct a cross-validation procedure in measuring the performance.•Make sure to use figures and tables to summarize your results and clarify your presentation.【实验环境】Operating system:window8(64bit)IDE:Matlab R2012bProgramming language:Matlab实验内容【实验方案设计】Main steps for the project is:1.To make it more challenging,I select the larger dataset,Pedestrian,rather than the smaller one.But it may be not wise to learning on such a large dataset,so I normalize the dataset from0to1first 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.实验过程:The 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.There are too much sample in the dataset,only a small part 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 are14596 samples initially,but1460may 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:Experiment1:Find out the training accuracy of different amount of 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,13may be good choice since they have relative higher accuracy.Experiment2: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,9may be good choice since the ratio do not change so much.As a result,c=5is selected to satisfy the three criterions.3780features 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:Experiment3:This experiment is a filter forward featureselection process.The target is to select thefeature has the maximum value of(relevance+λ*redundancy)in each step,where relevancedenotes the correlation between feature and class,and redundancy denotes mean of pairwise featurecorrelation.λis set from-1to1.The result isshown to the right:X-axis denotes number of selected features,Y-axis denotes accuracy.Each lines represent oneλ.It’s obviously that with a higherλ,the accuracyis lower,that is to say,with higher redundancy,the performance of the classifier is worse.So Iselectλ=-1,and the heuristic function becomes:max(relevance-redundancy)The heuristic function is known now but the best amount of features is still unknown and is found in experiment4:Experiment4:Find out the training accuracy of different amount of features.The result is shown below.X-axis is amount of features and Y-axis is accuracy.Red line denotes accuracy before feature selection and blue line denotes accuracy after feature selection.As it’s shown in the figure,when feature amount reach50,the accuracy trend to be stable.So only50features is selected.To make the dataset smaller,features with contribution rate of PCA≥85%is selected.So we finally obtain a dataset with1460samples and32features.The size of the dataset drops for92.16%but accuracy only has0.61%decease.So these preprocessing steps are successful to decrease the size of the dataset.6models 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:1K-NNWhen k≥5,the accuracy trends to be stable,so k=52Decision treeMaxcrit is used as binary splitting criterion.3MLP5units for hidden is enoughThe six learning algorithm can be combing into6multi-classifiers system individually to increase their accuracy.Most popular model are boosting and bagging:1BoostingEach classifier is dependent on previous one,and has their own weight. Misclassified samples have higher weight.Boosting always outperform bagging, but may cause the problem of overfitting.2BaggingEach classifier is independent and all sample are treated equally.Final result are vote by each classifier.More suitable for unstable classifier such as ANN(little change in input may cause large difference in learning result).I am interesting about will bagging truly help increasing accuracy of unstable classifier such as MLP and decision tree,and what about stable classifier like K-NN, Naïve Bayesian,Perception and SVM.There is also a question that how many classifier is need.Experiment5will show the answer:Experiment5:Six classifiers is investigated individually,accuracy under different amount of classifiers is shown in the figure below.Each figures stands for a certain kind of classifier.X-axis denotes amount of classifiers and Y-axis denotes the accuracy.Black line is for the highest accuracy for those accuracy,green for the worst,blue for the mean of them and red line is for bagging classifiers.We can learn from the figure that bagging dose help increasing the accuracy of each classifiers,and for the decision tree and MLP,bagging improve the accuracy for a great degree.Which is consistent with the assumption.。