查看: 997|回复: 6|关注: 0

[已答复] 请问对于这题应该如何编写程序解决?

[复制链接]

新手

5 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2019-1-16 20:23:32 | 显示全部楼层 |阅读模式
⦁ 生物学家试图对两类蠓虫(Af与Apf)进行鉴别,依据的资料是蠓虫的触角和翅膀的长度,已经测得9只Af和6只Apf的数据,(触角长度用x表示,翅膀长度用y表示)具体数据为:
Af 类触角和翅膀长度
  x= 1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56  
  y=1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08
Apf 类触角和翅膀长度数据
x=1.14  1.18  1.20  1.26  1.28  1.30  
y=1.78  1.96  1.86  2.00  2.00  1.96
    试设计神经网络模型,对给定(x,y)=(1.24,1.80)、(1.28,1.84)、(1.40,2.04)加以识别,即指出这三个样本数据代表Af还是Apf?
     

MATLAB 基础讨论
版块优秀回答者

入门

174 麦片

财富积分


50500


4

主题

548

帖子

34

最佳答案
  • 关注者: 17
发表于 2019-1-20 22:33:24 | 显示全部楼层
有没有指定使用哪种神经网络?可以帮你实现。

MATLAB 基础讨论
版块优秀回答者

入门

174 麦片

财富积分


50500


4

主题

548

帖子

34

最佳答案
  • 关注者: 17
发表于 2019-1-20 22:56:34 | 显示全部楼层
LVQ网络应该可以实现。

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2019-3-14 14:51:33 | 显示全部楼层
%%
N=0.2;                  %学习率
P=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56 1.14  1.18  1.20  1.26  1.28  1.30;...
   1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08 1.78  1.96  1.86  2.00  2.00  1.96];     %输入参数
D=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];        %期望输出
W=[0,0,0];              %权重和偏置初始化
P=[ones(1,15)];        
%%
i=0;
while 1  
  V=W*P;
  Y=hardlim(V);
  E=D-Y;
  EE(i+1)=mae(E);
  if(EE(i+1)<0.001)
     disp('we have got it') ;
     disp(W);
     disp(i+1);
     break;
  end
   W=W+N*E*P';
   i=i+1;
  if(i>200)
     disp('times loop') ;  
     disp(W);
     break;
  end
end
%% 显示
figure;
subplot(2,1,1);         % 显示待分类的点和分类结果
x=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56];
y=[1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08];
plot(x,y,'.');
hold on;
plot([1.14  1.18  1.20  1.26  1.28  1.30],[1.78  1.96  1.86  2.00  2.00  1.96],'*');
%axis([-13,6,-10,16]);
legend('第一类','第二类');
title('15个坐标点的二分类');
x=1:0.02:2;
y=x*(-W(2)/W(3))-W(1)/W(3);
plot(x,y);
hold off;
subplot(2,1,2);         % 显示mae值的变化
x=0:i;
plot(x,EE,'o-');
s=sprintf('mae的值(迭代次数:%d)', i+1);
title(s);

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2019-3-14 14:52:35 | 显示全部楼层
%%
N=0.2;                  %学习率
P=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56 1.14  1.18  1.20  1.26  1.28  1.30;...
   1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08 1.78  1.96  1.86  2.00  2.00  1.96];     %输入参数
D=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];        %期望输出
W=[0,0,0];              %权重和偏置初始化
P=[ones(1,15)];        
%%
i=0;
while 1  
  V=W*P;
  Y=hardlim(V);
  E=D-Y;
  EE(i+1)=mae(E);
  if(EE(i+1)<0.001)
     disp('we have got it') ;
     disp(W);
     disp(i+1);
     break;
  end
   W=W+N*E*P';
   i=i+1;
  if(i>200)
     disp('times loop') ;  
     disp(W);
     break;
  end
end
%% 显示
figure;
subplot(2,1,1);         % 显示待分类的点和分类结果
x=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56];
y=[1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08];
plot(x,y,'.');
hold on;
plot([1.14  1.18  1.20  1.26  1.28  1.30],[1.78  1.96  1.86  2.00  2.00  1.96],'*');
%axis([-13,6,-10,16]);
legend('第一类','第二类');
title('15个坐标点的二分类');
x=1:0.02:2;
y=x*(-W(2)/W(3))-W(1)/W(3);
plot(x,y);
hold off;
subplot(2,1,2);         % 显示mae值的变化
x=0:i;
plot(x,EE,'o-');
s=sprintf('mae的值(迭代次数:%d)', i+1);
title(s);

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2019-3-14 14:56:59 | 显示全部楼层
%%
N=0.2;                  %学习率
P=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56 1.14  1.18  1.20  1.26  1.28  1.30;...
   1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08 1.78  1.96  1.86  2.00  2.00  1.96];     %输入参数
D=[1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];        %期望输出
W=[0,0,0];              %权重和偏置初始化
P=[ones(1,15)];        
%%
i=0;
while 1  
  V=W*P;
  Y=hardlim(V);
  E=D-Y;
  EE(i+1)=mae(E);
  if(EE(i+1)<0.001)
     disp('we have got it') ;
     disp(W);
     disp(i+1);
     break;
  end
   W=W+N*E*P';
   i=i+1;
  if(i>200)
     disp('times loop') ;  
     disp(W);
     break;
  end
end
%% 显示
figure;
subplot(2,1,1);         % 显示待分类的点和分类结果
x=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56];
y=[1.27   1.74   1.64   1.82  1.90  1.70  1.82  1.82  2.08];
plot(x,y,'.');
hold on;
plot([1.14  1.18  1.20  1.26  1.28  1.30],[1.78  1.96  1.86  2.00  2.00  1.96],'*');
%axis([-13,6,-10,16]);
legend('第一类','第二类');
title('15个坐标点的二分类');
x=1:0.02:2;
y=x*(-W(2)/W(3))-W(1)/W(3);
plot(x,y);
hold off;
subplot(2,1,2);         % 显示mae值的变化
x=0:i;
plot(x,EE,'o-');
s=sprintf('mae的值(迭代次数:%d)', i+1);
title(s);

50次收敛

50次收敛

新手

5 麦片

财富积分


050


0

主题

4

帖子

0

最佳答案
发表于 2019-3-14 14:59:06 | 显示全部楼层
钱昆 发表于 2019-3-14 14:56
%%
N=0.2;                  %学习率
P=[1.24   1.36   1.38   1.38  1.38  1.40  1.48  1.54  1.56 1.14   ...

把笑脸改成p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表