如何用BP神经网络,求解蠓虫分类问题?
来源:网络收集 点击: 时间:2024-02-29蠓虫分类问题:对两种蠓虫(A 与B)进行鉴别,依据的资料是触角和翅膀的长度,已知了9 支Af 和6 支Apf 的数据如下:A: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).B: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).
根据如上资料,如何制定一种方法,正确地区分两类蠓虫?
2/9设定1代表A类,0代表B类。输入数据,并设置目标值。
p1=;
p2=;
p=;
goal=;
3/9将数据绘制成散点图
figure(1);plot(p1(:,1),p1(:,2),h,p2(:,1),p2(:,2),o);hold on
x=;
plot(x(:,1),x(:,2),rs);

创建 一个bp 神经网络,并设置网络参数:
pr=minmax(p);%求解p矩阵中每个行向量中的最小值和最大值
net=newff(pr,,{logsig,logsig},trainrp);
net.trainParam.show=50;
net.trainParam.lr=0.01;
net.trainParam.epochs=50000;
5/9训练网络:
net=train(net,p,goal);

对网络进行仿真,并输出仿真结果,结果如图所示:
xtest=sim(net,x)
pt=;
ptest=sim(net,pt);

将仿真结果绘制在图形中
figure(2);
plot(1:length(p),goal(1,:),*b);hold on
plot(1:length(ptest),ptest(1,:),or);title(o表示预测值 *表示实际值);grid on

以原数据进行仿真,比较目标数据与仿真数据,绘制误差变化图。
pt=sim(net,p);
figure(3);
error=pt(1,:)-goal(1,:);
plot(1:length(error),error);title(误差变化图);

运用BP神经网络求解分类问题,其实并不复杂,而且整个程序也不长。由上述结果可知,所建立的BP神经网络求能很好的结果该分类问题。且程序运行速度也很快,不超过2秒。

创建神经网络时,注意传递函数的设置,不同的传递函数得到的结果可能会差别很大。
多运行几次,得到的结果会精确一些。
网络版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_167989.html