当前位置:   article > 正文

MATLAB 神经网络43个案例——BP神经网络数据预测_神经网络matlab案例

神经网络matlab案例

代码分析:

  1. clear all;close;clc
  2. %% 读取数据
  3. %p为输入 t为输出
  4. p=randi(20,[200,2]);%产生大小为1至20之间 维度为200*2的伪随机数矩阵
  5. t=p(:,1)+p(:,2);
  6. %% 训练集和测试集
  7. p_train=p(1:190,:)';
  8. p_test=p(191:end,:)';
  9. t_train=t(1:190,:)';
  10. t_test=t(191:end,:)';
  11. %% 节点个数
  12. inum=2;%输入层
  13. hnum=5;%隐藏层
  14. onum=1;%输出层
  15. %% 训练集输入输出数据归一化
  16. [P_train,PS]=mapminmax(p_train);%首字母大写:归一化后的数据
  17. [T_train,TS]=mapminmax(t_train);
  18. %% 构建BPnet框架 参数配置
  19. net=newff(P_train,T_train,hnum);
  20. view(net)
  21. net.trainParam.epochs=1000;%迭代次数
  22. net.trainParam.lr=0.01;%学习率
  23. net.trainParam.goal=0.00001;%最小目标误差(均方误差)
  24. %% BPnet训练
  25. net=train(net,P_train,T_train);%根据上述参数对net进行训练
  26. %% 测试集输入数据归一化
  27. P_test=mapminmax('apply',p_test,PS);
  28. %% BPnet预测
  29. T_test_predict=sim(net,P_test);
  30. %% 预测值反归一化
  31. t_test_predict=mapminmax('reverse',T_test_predict,TS);
  32. %% 误差:真实值-预测值
  33. error=t_test-t_test_predict;
  34. mse=error*error'/size(error,2);%均方误差
  35. %% 对比图
  36. hold on
  37. plot(t_test,'bo-');
  38. plot(t_test_predict,'r*-');
  39. plot(error,'k');
  40. legend('真实值','预测值','误差');
  41. xlabel('数据组数');
  42. ylabel('样本值');
  43. title('BPnet预测值与真实值的对比图');

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/94563
推荐阅读
相关标签
  

闽ICP备14008679号