%% 使用神经网络模型(向后传播算法BP)解决蝗虫分类问题
clc, clear
% 第一类蝗虫的触角和翅膀
p1 = [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];
% 第二类蝗虫的触角和翅膀
p2 = [1.14, 1.82; 1.18, 1.96; 1.20, 1.86;
1.26, 2.00; 1.28, 2.00; 1.30, 1.96];
p = [p1; p2]';
% 分别获取触角和翅膀的最小值与最大值
pr = minmax(p);
goal = [ones(1, 9), zeros(1, 6); zeros(1, 9), ones(1, 6)];
plot(p1(:, 1), p1(:, 2), 'h', p2(:, 1), p2(:, 2), 'o');
net = newff(pr, [3, 2], {'logsig', 'logsig'}); %函数newff建立一个可训练的前馈网络
%----参数介绍-----%
% net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF)
% PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
% Si:第i层神经元个数;
% TFi:第i层的传递函数,默认函数为tansig函数;
% BTF:训练函数,默认函数为trainlm函数;
% BLF:权值/阈值学习函数,默认函数为learngdm函数;
% PF:性能函数,默认函数为mse函数。
net.trainParam.show = 10; % 现实频率,这里设置为没训练20次显示一次
net.trainParam.lr = 0.05; % 学习速率,这里设置为0.05
net.trainParam.goal = 1e-10; % 训练目标最小误差
net.trainParam.epochs = 50000; % 训练次数,这里设置为300次
net = train(net, p, goal);
% 待分类数据
x = [1.24, 1.80; 1.28, 1.84; 1.40, 2.04]';
% 分类:调用Simulink。输出的是什么信息?
y0 = sim(net, p);
y = sim(net, x);
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的NeuralNetwork神经网络工具箱的调用案例内含数据集和源码-可更换为自己数据.zip (2个子文件)
基于matlab的NeuralNetwork神经网络工具箱的调用案例内含数据集和源码-可更换为自己数据
af_classify_BP.m 1KB
af_classify_LVQ.m 646B
共 2 条
- 1
资源评论
AI拉呱
- 粉丝: 2865
- 资源: 5510
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功