中科大模式识别大作业实验报告
时间:2025-04-03
时间:2025-04-03
中科大,2014年,模式识别
模式识别大作业实验报告
MyZenith(PB1*210***)
ByN_3104_EVER
实验一:
(1) 已知二维模式样本集 X1={(1,0),(1,1),(0,2)} X2={(2,1),(2,2),(1,3)} ,
用固定增量算法求分界面方程,并作图。
(2) 分别改变初始权值向量和样本集中样本顺序来获得不同的结果。
(3) 自定义线性不可分样本(如 X1={(1,0),(1,1)} X2={(0,1),(1,0)}),通过限
定算法迭代次数(如 100 次)得到结果并分析。
(4) 分析实验结果和所得结论,撰写实验报告。
实验目的:
通过编程实现感知器算法,加深对感知器算法的认识,掌握对分界面求取的步骤与过
程。
实验代码: 使用 MATLAB
编程实现:主程序:
function [ output_args ] = main1( input_args )
x1=[1,0;1,1;0,2]; x2=[2,1;2,2;1,3];
[m,n]=size(x1);
% w=double(ones(1,n+1));%设定权向量
w=double([1,0,1]);
w=func1(x1,x2,w,0.3); axis([-1 3 -1
4]);hold;
scatter(x1(1,1),x1(1,2),'red');
scatter(x1(2,1),x1(2,2),'red');
scatter(x1(3,1),x1(3,2),'red');
scatter(x2(1,1),x2(1,2),'blue');
scatter(x2(2,1),x2(2,2),'blue');
scatter(x2(3,1),x2(3,2),'blue');
line([0,-w(3)/w(1)],[-w(3)/w(2),0]);end
功能函数:
function [ output_args ] = func1( w1,w2,w,c )
[m1,n1]=size(w1); [m2,n2]=size(w2);
ww1=double(ones(m1,n1+1));%¹¹ÔìÔö¹ãÏòÁ¿
ww2=double(ones(m2,n2+1));for i=1:m1for
j=1:n1
ww1(i,j)=w1(i,j);endendfor
i=1:m2for j=1:n2
ww2(i,j)=w2(i,j);endend
ww2=-ww2;
isover=0;while isover ~= m1+m2
中科大,2014年,模式识别
isover = 0;for i=1:m1
g=ww1(i,:).*w;
sm=sum(g);if sm <= 0
w = w+c*ww1(i,:);else
isover = isover+1;endendfor
i=1:m2 g=ww2(i,:).*w;
sm=sum(g);if sm <= 0
w = w+c*ww2(i,:);else
isover = isover+1;endendend
output_args = w;end
运行结果:
中科大,2014年,模式识别
(2)改变权值 w=[1,1,0] 结果如下:
中科大,2014年,模式识别
其图均相同,故可知 w 的选择影响算法的迭代次数。
(3)
代码如下:
x=[1 1 0 -1;
0 1 -1 0; 1 1 -1 -1;]; w=[1,1,1]; k=0; p=1; n=0; while ((n<4)&&(k<100)) i=mod(k,4)+1; g=w*x(:,i);if(g<=0) w=w+p*x(:,i)';
n=0;else n=n+1;end k=k+1;endlx=-3:1:3;tx=[1 1 0 1;];ty=[0 1
1 0;]; tx1=[1 1];tx2=[0 1];ty1=[0 1];ty2=[1 0]; plot(tx1,ty1,'blue'); hold on;plot(tx2,ty2,'red'); hold on;ly=-
((w(:,1)*lx+w(:,3))/w(:,2));plot(lx,ly);hold on;
中科大,2014年,模式识别
由图可知,感知器算法在得到最优解之前会一直迭代下去。
实验小结:使用 matlaB 成功展示了感知器算法在模式识别中的作用,对权向量,线性 可分/不可分的数据都进行了处理,由此可以验证感知器算法的一系列性质。
实验二:
实验题目:
1
2
3
4 试就不同的初始分化,观察集群结果对初始分化的敏感性。 比较各群样本都很密集并且彼此明显分开的情况下与各群样本数目相差很大时,误差平方和集群效果,了解误差平方和准则函数集群的优势和缺陷。 试对算法进行适当改进使其可以对样本数目相差很大的情况进行集群,用文字叙述改进的思路。 给出以上各种情况的图形结果,撰写实验报告。
实验目的:熟悉误差平方和函数的集群方法,能分析初始化对集群带来的影响,了解误差平方和集群方法的优劣。原理分析与程序源码:
误差平方和准则函数:
实验代码:
N=100;m=5;sample=r
and(N,2);center=ra
nd(m,2);times=0;cl
ass=ones(N);while
(times<=100)
times=times+1for
i=1:Ndist=2;for
j=1:m
中科大,2014年,模式识别
t=norm(sample(i,:)-
center(j,:));if t<dist
dist=t;no=j;endend
class(i)=no;endfor j=1:m
tt=[0,0];number=0;for i=1:Nif class(i)==j
tt=tt+sample(i,:);
number=number+1;endend tt=tt/number;
center(j,:)=tt;endend
temp=['o','+','^','*','p','h','.','v','>','<'];for
i=1:N
plot(sample(i,1),sample(i,2),temp(class(i)));hold on;endfor j=1:m plot(center(j,1),center(j,2),temp(j),'MarkerSize',15,'Color','r');hol d on;
end
实验结果:
各群样本都很密集并且彼此明显分开的情况下:
各群样本数目相差很大时,由于程序中已经设置聚类中心随机生成,故其的图也是随机变化的:
中科大,2014年,模式识别
中科大,2014年,模式识别
实验小结:使用 matlab 编程验证了最小均方误差算法的适用性以及在不同场合下产生的不同聚类效果,直观的效果加强了对其的认识。
实验三:
实验题目:
给定正规文法 G={Vn,Vt,P,S} Vn={S,B} Vt={a,b} P: S-
>aB, B->bS, B->aB, B->a
构造确定的有限自动机后,编制确定的有限自动机算法,并分析链:检验
X=aababaaababaaa 和 X=ababaababaaba 是否能被 G 接受。
(1) 总结出被接受的链的一般特征。
(2) 分析正规文法和确定的有限自动机的联系并 …… 此处隐藏:2939字,全部文档内容请下载后查看。喜欢就下载吧 ……