模式识别作业2
- 格式:docx
- 大小:215.74 KB
- 文档页数:18
Lecture2作业1,已知类ω1由两个特征向量 0,0 T , 1,0 T 组成,类ω2由两个特征向量 0,1 T , 1,1 T 组成,使用感知器算法,并令w 0=(0,0)T ,设计这两类的线性分类函数。
2,证明:针对线性可分训练样本集,PLA 算法中,当W 0=0,在对分错样本进行了T 次纠正后,下式成立:W f T W f W TW T ≥ T ∙constant3,针对线性可分训练样本集,PLA 算法中,假设对分错样本进行了T 次纠正后得到的分类面不再出现错分状况,定义:R 2=max n x n 2,ρ=min n y n W f TW f x n ,试证明:T ≤R 2ρ2编程作业1,编写一个名为Perce 的函数,用它来实现感知器算法。
函数的输入/输出有:(a )一个N*d 维的矩阵X ,它的第i 行是第i 个数据向量; (b )一个N 维列向量y ,y 的第i 个元素包含了类(-1,1),并且该类与相应的向量相互对应;(c )用向量w_ini 初始化参数向量;并且返回估计参数向量; 假设函数最大迭代次数为10000。
2,(a )产生两个都具有200个二维向量的数据集X1和'1X (注意:在生成数据集之前最好使用命令randn(‘seed ’,0)初始化高斯随机生成器为0(或任意给定数值),这对结果的可重复性很重要)。
向量的前半部分来自均值向量T [-5,0]m1=的正态分布,并且协方差矩阵I =S1。
向量的后半部分来自均值向量T [5,0]m1=的正态分布,并且协方差矩阵I =S1。
其中I 是一个2*2的单位矩阵。
(b )在上述数据集上运用感知器算法,并且使用不同的初始向量初始化参数向量。
(c )测试每一种算法在X1和'1X 上的性能。
(d )画出数据集X1和'1X ,以及分类面。
3,重复第2题的内容,但是实验中要使用数据集X2和'2X (注意:在生成数据集之前最好使用命令randn(‘seed ’,0)初始化高斯随机生成器为0(或任意给定数值),这对结果的可重复性很重要)。
2013模式识别练习题一. 填空题1、模式识别系统的基本构成单元包括:模式采集、特征的选择和提取和模式分类。
2、统计模式识别中描述模式的方法一般使用特征矢量;句法模式识别中模式描述方法一般有串、树、网。
3、影响层次聚类算法结果的主要因素有计算模式距离的测度、聚类准则、类间距离阈值、预定的类别数目。
4、线性判别函数的正负和数值大小的几何意义是正负表示样本点位于判别界面法向量指向的正负半空间中,绝对值正比于样本点与判别界面的距离。
5、感知器算法1 ,H-K算法 2 。
(1)只适用于线性可分的情况;(2)线性可分、不可分都适用。
6、在统计模式分类问题中,聂曼-皮尔逊判决准则主要用于某一种判别错误较另一种判别错误更为重要的情况;最小最大判别准则主要用于先验概率未知的情况。
7、“特征个数越多越有利于分类”这种说法正确吗?错误。
特征选择的主要目的是从n个特征中选取最有利于分类的m个特征(m<n),以降低特征维数。
一般在和(C n m>>n )的条件下,可以使用分支定界法以减少计算量。
8、散度J ij越大,说明ωi类模式与ωj类模式的分布差别越大;当ωi类模式与ωj类模式的分布相同时,J ij= 0。
二、选择题1、影响聚类算法结果的主要因素有(B、C、D )。
A.已知类别的样本质量;B.分类准则;C.特征选取;D.模式相似性测度2、模式识别中,马式距离较之于欧式距离的优点是(C、D)。
A.平移不变性;B.旋转不变性;C尺度不变性;D.考虑了模式的分布3、影响基本K-均值算法的主要因素有(ABD)。
A.样本输入顺序;B.模式相似性测度;C.聚类准则;D.初始类中心的选取4、位势函数法的积累势函数K(x)的作用相当于Bayes判决中的(B D)。
A. 先验概率;B. 后验概率;C. 类概率密度;D. 类概率密度与先验概率的乘积5、在统计模式分类问题中,当先验概率未知时,可以使用(BD )。
A. 最小损失准则;B. 最小最大损失准则;C. 最小误判概率准则;D. N-P 判决6、散度J D 是根据( C )构造的可分性判据。
机器学习中的数据挖掘与模式识别随着信息时代的到来,大数据已经成为各行各业的重要组成部分。
而机器学习作为大数据处理的关键技术之一,数据挖掘与模式识别更是机器学习中不可或缺的重要环节。
本文将探讨机器学习中的数据挖掘与模式识别,从其定义、应用和发展趋势等多个方面展开论述。
一、数据挖掘与模式识别的定义数据挖掘是指从大量数据中发现并提取先前未知的、有价值的、可理解的模式和信息的过程。
而模式识别则是将目标对象的特征与已知模式相比较,以确定其所属类别或属性的过程。
在机器学习中,数据挖掘与模式识别通常是指利用算法和模型来分析数据、识别模式并做出预测的过程。
二、数据挖掘与模式识别的应用数据挖掘与模式识别在各个领域都有着广泛的应用。
在金融领域,机器学习的数据挖掘能够帮助银行和投资机构发现欺诈行为、预测股市走势以及制定个性化的投资组合。
在医疗领域,数据挖掘和模式识别可以帮助医生分析大量的病例数据,辅助诊断疾病和预测患者的治疗效果。
在电子商务领域,数据挖掘和模式识别可以帮助企业分析用户行为,精准推荐商品,提高销售转化率。
在智能制造领域,数据挖掘和模式识别可以帮助企业提高生产效率,优化生产计划,减少生产成本。
三、数据挖掘与模式识别的发展趋势随着科学技术的不断进步,数据挖掘与模式识别也在不断发展。
一方面,随着大数据技术的普及和成熟,数据挖掘的数据规模越来越大,模式识别的准确性和稳定性也在不断提高。
另一方面,随着人工智能技术的飞速发展,机器学习算法也在不断创新,例如深度学习、强化学习等技术的应用,使得数据挖掘与模式识别的应用领域更加广泛。
未来,数据挖掘与模式识别的发展趋势将更加注重算法的自动化和智能化,以适应大规模数据的处理需求。
同时,数据挖掘与模式识别在医疗健康、智能制造、智能交通等领域的应用前景也将更加广阔。
四、数据挖掘与模式识别的挑战尽管数据挖掘与模式识别有着广泛的应用前景,但是也面临着一些挑战。
首先,随着数据规模的不断增大,数据的质量和可信度成为了一个亟待解决的问题。
第二章主要内容:几种常见的聚类算法已经所使用的准则函数。
作业1:对如下5个6维模式样本,用最小聚类准则进行系统聚类分析 已知样本如下:x1: 0, 1, 3, 1, 3, 4;x2: 3, 3, 3, 1, 2, 1;x3: 1, 0, 0, 0, 1, 1;x4: 2, 1, 0, 2, 2, 1;x5: 0, 0, 1, 0, 1, 0 第1步:将每一样本看成单独一类,得(0)(0)(0)112233(0)(0)4455{},{},{}{},{}G x G x G x Gx Gx =====计算各类之间的欧式距离,可得距离矩阵(0)D第2步:矩阵(0)D,它是(0)3G 和(0)5G 之间的距离,将他们合并为一类,得新的分类为(1)(0)(1)(0)(1)(0)(0)(1)(0)112233544{},{},{,},{}G G G G G G G G G ====计算聚类后的距离矩阵(1)D 第3步:由于(1)D 它是(1)3G 与(1)4G 之间的距离,于是合并(1)3G 和(1)4G ,得新的分类为(2)(1)(2)(2)(2)(1)(1)1122334{},{},{,}G G G G G G G ===同样,按最小距离准则计算距离矩阵(2)D,得第4步:同理得(3)(2)(3)(2)(2)11223{},{,}G G G G G == 满足聚类要求,如聚为2类,聚类完毕。
系统聚类算法介绍:第一步:设初始模式样本共有N 个,每个样本自成一类,即建立N 类。
G 1(0), G 2(0) , ……,G N (0)为计算各类之间的距离(初始时即为各样本间的距离),得到一个N*N 维的距离矩阵D(0)。
这里,标号(0)表示聚类开始运算前的状态。
第二步:假设前一步聚类运算中已求得距离矩阵D(n),n 为逐次聚类合并的次数,则求D(n)中的最小元素。
如果它是Gi(n)和Gj(n)两类之间的距离,则将Gi(n)和Gj(n)两类合并为一类G ij (n+1),由此建立新的分类:G 1(n+1), G 2(n+1)……第三步:计算合并后新类别之间的距离,得D(n+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 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
作业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 用身高/体重数据进行性别分类(二)基本要求:试验直接设计线性分类器的方法,与基于概率密度估计的贝叶斯分离器进行比较。
2.6给出K-均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本,并对它们进行聚类分析。
MATLAB程序代码clear all;clc;data=input('请输入样本数据矩阵:');X=data(:,1);Y=data(:,2);figure(1);plot(X,Y,'r*','LineWidth',3);axis([0908])xlabel('x');ylabel('y');hold on;grid on;m=size(data,1);n=size(data,2);counter=0;k=input('请输入聚类数目:');if k>mdisp('输入的聚类数目过大,请输入正确的k值');k=input('请输入聚类数目:');endM=cell(1,m);for i=1:kM{1,i}=zeros(1,n);endMold=cell(1,m);for i=1:kMold{1,i}=zeros(1,n);end%随机选取k个样本作为初始聚类中心%第一次聚类,使用初始聚类中心p=randperm(m);%产生m个不同的随机数for i=1:kM{1,i}=data(p(i),:);while truecounter=counter+1;disp('第');disp(counter);disp('次迭代');count=zeros(1,k);%初始化聚类CC=cell(1,k);for i=1:kC{1,i}=zeros(m,n);end%聚类for i=1:mgap=zeros(1,k);for d=1:kfor j=1:ngap(d)=gap(d)+(M{1,d}(j)-data(i,j))^2;endend[y,l]=min(sqrt(gap));count(l)=count(l)+1;C{1,l}(count(l),:)=data(i,:);endMold=M;disp('聚类中心为:');for i=1:kdisp(M{1,i});enddisp('聚类结果为:');for i=1:kdisp(C{1,i});sumvar=0;for i=1:kE=0;disp('单个误差平方和为:');for j=1:count(i)for h=1:nE=E+(M{1,i}(h)-C{1,i}(j,h))^2;endenddisp(E);sumvar=sumvar+E;enddisp('总体误差平方和为:');disp(sumvar);%计算新的聚类中心,更新M,并保存旧的聚类中心for i=1:kM{1,i}=sum(C{1,i})/count(i);end%检查前后两次聚类中心是否变化,若变化则继续迭代;否则算法停止;tally=0;for i=1:kif abs(Mold{1,i}-M{1,i})<1e-5*ones(1,n)tally=tally+1;continue;elsebreak;endendif tally==kbreak;endEnd3.11给出感知器算法程序框图,编写算法程序.MATLAB程序代码clear all;clc;disp('感知器算法求解两类训练样本的判别函数'); Data1=input('请输入第一类样本数据:');Data2=input('请输入第二类样本数据:');W=input('请输入权向量初始值W(1)='); Expand=cat(1,Data1,Data2); ExpandData1=cat(2,Data1,ones(4,1)); ExpandData2=cat(2,Data2.*-1,ones(4,1).*-1); ExpandData=cat(1,ExpandData1,ExpandData2); X=Expand(:,1);Y=Expand(:,2);Z=Expand(:,3);[ro,co]=size(ExpandData);Step=0;CountError=1;while CountError>0;CountError=0;for i=1:roTemp=W*ExpandData(i,:)';if Temp<=0W=W+ExpandData(i,:);disp(W)CounterError=CountError+1;endendStep=Step+1;enddisp(W)figure(1)plot3(X,Y,Z,'ks','LineWidth',2);grid on;hold on;xlabel('x');ylabel('y');zlabel('z');f=@(x,y,z)W(1)*x+W(2)*y+W(3)*z+W(4); [x,y,z]=meshgrid(-1:.2:1,-1:.2:1,0:.2:1);v=f(x,y,z);h=patch(isosurface(x,y,z,v));isonormals(x,y,z,v,h)set(h,'FaceColor','r','EdgeColor','none');。
机器学习第⼆次作业机器学习笔记⼀、机器学习的相关概念模式识别是根据已有知识的表达,针对待识别模式,通过计算机⽤数学技术⽅法来判别所属的类别或是预测对应的回归值。
环境与客体统称为“模式”。
根据任务,模式识别可以分为「分类」和「回归」两种形式。
输⼊待识别模式,经过模式识别模型进⾏计算处理,输出其所属类别或回归值就是模式识别的过程,模式识别模型类似于数学上的\(f(x)\)表达式。
⼀个模式识别模型包含「特征提取」与「分类器」。
机器学习是⼈⼯智能的⼀个分⽀,是通过给定模式识别的初始模型,学习已有的特征知识以不断调整模型参数,最后获得更为准确的模式识别模型的过程,即利⽤机器学习的途径解决⼈⼯智能的问题。
样本是⽤于机器学习的现有知识的集合。
根据真值的给定与否分为「标注的样本」和「未标注的样本」。
机器学习的⽅法根据样本真值的给定与否分为「监督式学习」、「⽆监督式学习」和「半监督式学习」。
近年也出现了新的机器学习⽅法,根据先后累计的多次决策动作判断决策的好坏,称为「强化学习」。
样本根据⽤途的不同还可以分为「训练样本」和「测试样本」。
由于样本的有限性造成样本集合并不能完整表达所有模式,样本⾃⾝携带的噪声也会对模型的判断造成影响,这要求模型具有较好的泛化能⼒。
泛化能⼒是指⼀个模型不仅对训练样本内的模式有判别能⼒,对于训练样本外的模式也要具有决策能⼒。
训练获得的模型泛化能⼒低下则称为过拟合,可以选择复杂度适合的模型或通过加⼊正则项的⽅式提⾼模型的泛化能⼒。
⼆、特征的相关概念特征的定义特征是⽤于区分不同类别模式的可测量的量,具有「辨别能⼒」和「鲁棒性」两个特性。
特征向量是由多个特征构成的列向量,表⽰⼀个模式。
特征空间是特征在空间上的表达⽅式,坐标轴表⽰某⼀个特征,空间中的每个点表⽰⼀个模式,空间原点到点的向量表⽰该模式的特征向量。
特征的相关运算点积\(x \cdot y = x^{T}y = y^{T}x = \sum^{p}_{j=1}{x_{j}y_{j}}\)点积的结果是⼀个标量表达点积是⼀个线性变换⼏何意义:\(x \cdot y = |x||y|cos \theta\)点积为0则表⽰两个向量共线,称为正交向量夹⾓\(cos\theta = \frac{x \cdot y}{|x||y|}\)投影\(x_{y} = |x|cos \theta\)\(x_{y}\)称为x到y上的投影,是x在y⽅向上的长度(标量)投影向量\(x_{y} = |x|cos\theta\frac{y}{|y|}\)\(x_{y}\)称为x在y上的分解,是x在y⽅向上的向量特征的相关性由于每个特征向量表达⼀个模式,因此特征的相关性是度量模式之间是否相似的基础。
第三章作业已知两类训练样本为1:(0 0 0 )',(1 0 0)' ,(1 0 1)',(1 1 0)'ω2:(0 0 1)',(0 1 1)' ,(0 1 0)',(1 1 1)'ω设0)'(-1,-2,-2,)1(=W,用感知器算法求解判别函数,并绘出判别界面。
$解:matlab程序如下:clear%感知器算法求解判别函数x1=[0 0 0]';x2=[1 0 0]';x3=[1 0 1]';x4=[1 1 0]';x5=[0 0 1]';x6=[0 1 1]';x7=[0 1 0]';x8=[1 1 1]';%构成增广向量形式,并进行规范化处理[x=[0 1 1 1 0 0 0 -1;0 0 0 1 0 -1 -1 -1;0 0 1 0 -1 -1 0 -1;1 1 1 1 -1 -1 -1 -1];plot3(x1(1),x1(2),x1(3),'ro',x2(1),x2(2),x2(3),'ro',x3(1),x3(2),x3(3),'ro',x4(1),x4(2),x4(3),'ro');hold on; plot3(x5(1),x5(2),x5(3),'rx',x6(1),x6(2),x6(3),'rx',x7(1),x7(2),x7(3),'rx',x8(1),x8(2),x8(3),'rx');grid on; w=[-1,-2,-2,0]';c=1;N=2000;for k=1:N|t=[];for i=1:8d=w'*x(:,i);if d>0w=w;、t=[t 1];elsew=w+c*x(:,i);t=[t -1];end-endif i==8&t==ones(1,8)w=wsyms x yz=-w(1)/w(3)*x-w(2)/w(3)*y-1/w(3);《ezmesh(x,y,z,[ 1 2]);axis([,,,,,]);title('感知器算法')break;else{endend运行结果:w =3]-2-31判别界面如下图所示:!若有样本123[,,]'x x x x =;其增广]1,,,[321x x x X =;则判别函数可写成: 1323')(321+*-*-*=*=x x x X w X d若0)(>X d ,则1ω∈x ,否则2ω∈x已知三类问题的训练样本为123:(-1 -1)', (0 0)' , :(1 1)'ωωω<试用多类感知器算法求解判别函数。
作业一:在一个10类的模式识别问题中,有3类单独满足多类情况1,其余的类别满足多类情况2。
问该模式识别问题所需判别函数的最少数目是多少?答案:将10类问题可看作4类满足多类情况1的问题,可将3类单独满足多类情况1的类找出来,剩下的7类全部划到4类中剩下的一个子类中。
再在此子类中,运用多类情况2的判别法则进行分类,此时需要7*(7-1)/2=21个判别函数。
故共需要4+21=25个判别函数。
作业二:一个三类问题,其判别函数如下:d1(x)=-x1, d2(x)=x1+x2-1, d3(x)=x1-x2-11.设这些函数是在多类情况1条件下确定的,绘出其判别界面和每一个模式类别的区域。
2.设为多类情况2,并使:d12(x)= d1(x), d13(x)= d2(x), d23(x)=d3(x)。
绘出其判别界面和多类情况2的区域。
3. 设d1(x), d2(x)和d3(x)是在多类情况3的条件下确定的,绘出其判别界面和每类的区域。
答案:123作业三:两类模式,每类包括5个3维不同的模式,且良好分布。
如果它们是线性可分的,问权向量至少需要几个系数分量?假如要建立二次的多项式判别函数,又至少需要几个系数分量?(设模式的良好分布不因模式变化而改变。
)答案:如果它们是线性可分的,则至少需要4个系数分量;如果要建立二次的多项式判别函数,则至少需要1025 C 个系数分量。
作业四:用感知器算法求下列模式分类的解向量w :ω1: {(0 0 0)T, (1 0 0)T, (1 0 1)T, (1 1 0)T}ω2: {(0 0 1)T, (0 1 1)T, (0 1 0)T, (1 1 1)T}答案:将属于ω2的训练样本乘以(-1),并写成增广向量的形式。
x①=(0 0 0 1)T,x②=(1 0 0 1)T,x③=(1 0 1 1)T,x④=(1 1 0 1)Tx⑤=(0 0 -1 -1)T,x⑥=(0 -1 -1 -1)T,x⑦=(0 -1 0 -1)T,x⑧=(-1 -1 -1 -1)T第一轮迭代:取C=1,w(1)=(0 0 0 0)T因w T(1)x①=(0 0 0 0)(0 0 0 1)T=0≯0,故w(2)=w(1)+x①=(0 0 0 1) 因w T(2)x②=(0 0 0 1)(1 0 0 1)T =1>0,故w(3)=w(2)=(0 0 0 1)T因w T(3)x③=(0 0 0 1)(1 0 1 1)T=1>0,故w(4)=w(3)=(0 0 0 1)T因w T(4)x④=(0 0 0 1)(1 1 0 1)T=1>0,故w(5)=w(4)=(0 0 0 1)T因w T(5)x⑤=(0 0 0 1)(0 0 -1 -1)T=-1≯0,故w(6)=w(5)+x⑤=(0 0 -1 0)T因w T(6)x⑥=(0 0 -1 0)(0 -1 -1 -1)T=1>0,故w(7)=w(6)=(0 0 -1 0)T 因w T(7)x⑦=(0 0 -1 0)(0 -1 0 -1)T=0≯0,故w(8)=w(7)+x⑦=(0 -1 -1 -1)T因w T(8)x⑧=(0 -1 -1 -1)(-1 -1 -1 -1)T=3>0,故w(9)=w(8)=(0 -1 -1 -1)T因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第二轮迭代。
第二轮迭代:因w T(9)x①=(0 -1 -1 -1)(0 0 0 1)T=-1≯0,故w(10)=w(9)+x① =(0 -1 -1 0)T因w T(10)x②=(0 -1 -1 0)(1 0 0 1)T=0≯0,故w(11)=w(10)+x② =(1 -1 -1 1)T因w T(11)x③=(1 -1 -1 1)(1 0 1 1)T=1>0,故w(12)=w(11) =(1 -1 -1 1)T因w T(12)x④=(1 -1 -1 1)(1 1 0 1)T=1>0,故w(13)=w(12) =(1 -1 -1 1)T因w T(13)x⑤=(1 -1 -1 1)(0 0 -1 -1)T=0≯0,故w(14)=w(13)+x⑤ =(1 -1 -20)T因w T(14)x⑥=(1 -1 -2 0)(0 -1 -1 -1)T=3>0,故w(15)=w(14) =(1 -1 -2 0)T因w T(15)x⑧=(1 -1 -2 0)(0 -1 0 -1)T=1>0,故w(16)=w(15) =(1 -1 -2 0)T因w T(16)x⑦=(1 -1 -2 0)(-1 -1 -1 -1)T=2>0,故w(17)=w(16) =(1 -1 -2 0)T因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第三轮迭代。
第三轮迭代:w(25)=(2 -2 -2 0);因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第四轮迭代。
第四轮迭代: w(33)=(2 -2 -2 1)因为只有对全部模式都能正确判别的权向量才是正确的解,因此需进行第五轮迭代。
第五轮迭代: w(41)=(2 -2 -2 1)因为该轮迭代的权向量对全部模式都能正确判别。
所以权向量即为(2 -2 -2 1),相应的判别函数为123()2221d x x x x =--+ 作业五:编写求解上述问题的感知器算法程序。
程序源码: #include <iostream> using namespace std;int scale; //每个样本的维数,最多支持十维 int W1_N,W2_N; //第一类的个数以及第二类的个数double W1[1000],W2[1000];//第一、二类的所有样本的增广向量 int C;//初始的算法中的C 值double W[10];//初始的算法中的W 向量 int main() {cin>>scale>>W1_N>>W2_N;for(int i=0;i<W1_N*(scale+1);i++){cin>>W1[i];if(i%(scale+1)==2) //转化成增广向量W1[++i]=1;}for(int i=0;i<W2_N*(scale+1);i++){cin>>W2[i];W2[i]=-1*W2[i];if(i%(scale+1)==2) //转化成增广向量W2[++i]=-1;}scale=scale+1;cin>>C;for(int i=0;i<scale;i++)cin>>W[i];bool flag=false;while(!flag){bool flag1=true;for(int i=0;i<W1_N;i++){doubletmp=0.0;for(int j=0;j<scale;j++)tmp+=W1[i*scale+j]*W[j];if(tmp<=0){flag1=false;for(int j=0;j<scale;j++)W[j]=W[j]+W1[i*scale+j];}}for(int i=0;i<W2_N;i++){doubletmp=0.0;for(int j=0;j<scale;j++)tmp+=W2[i*scale+j]*W[j];if(tmp<=0){flag1=false;for(int j=0;j<scale;j++)W[j]=W[j]+W2[i*scale+j];}}if(flag1)flag=true;}cout<<”最后的权向量为:”<<endl;cout<<W[0];for(int i=1;i<scale;i++)cout<<" "<<W[i];cout<<endl;return 0;}程序运行截图:作业六:用多类感知器算法求下列模式的判别函数: ω1: (-1 -1)T ω2: (0 0)Tω3: (1 1)T将模式样本写成增广形式:x ①=(-1-1 1)T ,x ②=(00 1)T ,x ③=(1 1 1)T 取初始值w 1(1)=w 2(1)=w 3(1)=(0 0 0)T ,C=1。
第一轮迭代(k=1):以x ①=(-1 -1 1)T 作为训练样本。
d 1(1)=)1(1T w x ①=(0 0 0)(-1 -1 1)T =0 d 2(1)=)1(2T w x ①=(0 0 0)(-1 -1 1)T =0 d 3(1)=)1(3Twx ①=(0 0 0)(-1 -1 1)T =0因d 1(1)≯d 2(1),d 1(1)≯d 3(1),故w 1(2)=w 1(1)+x ①=(-1 -1 1)T w 2(2)=w 2(1)-x ①=(11 -1)T w 3(2)=w 3(1)-x ①=(11 -1)T第二轮迭代(k=2):以x ②=(0 0 1)T 作为训练样本d 1(2)=)2(1T w x ②=(-1 -1 1)(0 0 1)T =1 d 2(2)=)2(2T w x ②=(1 1 -1)(0 0 1)T =-1 d 3(2)=)2(3Twx ②=(11 -1)(0 0 1)T=-1因d 2(2)≯d 1(2),d 2(2)≯d 3(2),故w 1(3)=w 1(2)-x ②=(-1 -1 0)T w 2(3)=w 2(2)+x ②=(1 1 0)T w 3(3)=w 3(2)-x ②=(1 1 -2)T第三轮迭代(k=3):以x ③=(1 1 1)T 作为训练样本d 1(3)=)3(1T w x ③=(-1 -1 0)(1 1 1)T =-2d 2(3)=)3(2T w x ③=(1 1 0)(1 1 1)T =2 d 3(3)=)3(3Twx ③=(1 1 -2)(1 1 1)T=0因d 3(3)≯d 2(3),故 w 1(4)=w 1(3) =(-1 -1 0)T w 2(4)=w 2(3)-x ③=(0 0 -1)T w 3(4)=w 3(3)+x ③=(2 2 -1)T第四轮迭代(k=4):以x ①=(-1 -1 1)T 作为训练样本d 1(4)=)4(1T w x ①=(-1 -1 0)(-1 -1 1)T =2 d 2(4)=)4(2T w x ①=(0 0 -1)(-1 -1 1)T =-1 d 3(4)=)4(3Twx ①=(2 2 -1)(-1 -1 1)T=-5因d 1(4)>d 2(4),d 1(4)>d 3(4),故 w 1(5)=w 1(4) =(-1 -1 0)T w 2(5)=w 2(4) =(0 0 -1)T w 3(5)=w 3(4) =(2 2 -1)T第五轮迭代(k=5):以x ②=(0 0 1)T 作为训练样本d 1(5)=)5(1T w x ②=(-1 -1 0)(0 0 1)T =0 d 2(5)=)5(2T w x ②=(0 0 -1)(00 1)T =-1d 3(5)=)5(3T wx ②=(2 2 -1)(00 1)T=-1因d 2(5) ≯d 1(5),d 2(5) ≯d 3(5),故w 1(6)=w 1(5)-x ②=(-1 -1 -1) w 2(6)=w 2(5)+x ②=(0 0 0) w 3(6)=w 3(5)-x ②=(2 2 -2)第六轮迭代(k=6):以x ③=(1 1 1)T 作为训练样本d 1(6)=)6(1T w x ③=(-1 -1 -1)(1 1 1)T =-3 d 2(6)=)6(2T w x ③=(0 0 0)(1 1 1)T =0 d 3(6)=)6(3Twx ③=(2 2 -2)(1 1 1)T=2因d 3(6)>d 1(6),d 3(6)>d 2(6),故w 1(7)=w 1(6) w 2(7)=w 2(6) w 3(7)=w 3(6)第七轮迭代(k=7):以x ①=(-1 -1 1)T 作为训练样本d 1(7)=)7(1T w x ①=(-1 -1 -1)(-1 -1 1)T =1 d 2(7)=)7(2T w x ①=(0 0 0)(-1 -1 1)T =0 d 3(7)=)7(3Twx ①=(2 2-2)(-1 -1 1)T=-6因d 1(7)>d 2(7),d 1(7)>d 3(7),分类结果正确,故权向量不变。