爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13023|回复: 24

[程序设计] 【已经解决】matlab神经网络,训练数据输入

[复制链接]

新浪微博达人勋

发表于 2014-11-10 09:34:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 无敌泡 于 2015-6-9 11:43 编辑



把全部代码贴上来,供初学者使用
  1. %% 清空环境变量
  2. clc
  3. clear

  4. %% 训练数据预测数据提取及归一化
  5. %下载输入输出数据
  6. load ndata input output
  7. input=input
  8. output=output

  9. %从1到2000间随机排序
  10. k=rand(1,3006);
  11. [m,n]=sort(k);

  12. %找出训练数据和预测数据
  13. input_train=input(n(1:2600),:)';
  14. output_train=output(n(1:2600),:)';
  15. input_test=input(n(2601:3006),:)';
  16. output_test=output(n(2601:3006),:)';

  17. %选连样本输入输出数据归一化
  18. [inputn,inputps]=mapminmax(input_train);
  19. [outputn,outputps]=mapminmax(output_train);

  20. %% BP网络训练
  21. % %初始化网络结构
  22. % test from 4-10
  23. net=newff(inputn,outputn,5);

  24. net.trainParam.epochs=2000;%训练步数
  25. net.trainParam.lr=0.1;%学习速率
  26. net.trainParam.goal=0.0002;%目标最小误差

  27. %网络训练
  28. net=train(net,inputn,outputn);

  29. %% BP网络预测
  30. %预测数据归一化
  31. inputn_test=mapminmax('apply',input_test,inputps);

  32. %网络预测输出
  33. an=sim(net,inputn_test);

  34. %网络输出反归一化
  35. BPoutput=mapminmax('reverse',an,outputps);

  36. %% 结果分析

  37. figure(1)
  38. plot(BPoutput,':or','linewidth',2)
  39. hold on
  40. plot(output_test,'-*');
  41. legend('预测API值','实际API值')
  42. title('BP网络预测输出','fontsize',12)
  43. ylabel('函数输出','fontsize',12)
  44. xlabel('样本','fontsize',12)
  45. %预测误差
  46. error=BPoutput-output_test;
  47. xdwc=(abs(error)./output_test)

  48. figure(2)
  49. plot(abs(error)./output_test,'-*')
  50. title('BP网络预测相对误差','fontsize',12)
  51. ylabel('相对误差','fontsize',12)
  52. xlabel('样本','fontsize',12)

  53. figure(3)
  54. plot(abs(output_test-BPoutput)./BPoutput,'-*');
  55. title('神经网络预测误差百分比')

  56. errorsum=sum(abs(error));
复制代码



密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-11-10 18:24:43 | 显示全部楼层
本帖最后由 二爷名声在外 于 2014-11-10 18:42 编辑

放一个完整的吧,这个太简略了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-10 19:52:17 | 显示全部楼层
本帖最后由 无敌泡 于 2014-11-14 11:08 编辑

复制代码
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2014-11-10 19:52:52 | 显示全部楼层
二爷名声在外 发表于 2014-11-10 18:24
放一个完整的吧,这个太简略了

请二爷指点啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-11-11 08:23:56 | 显示全部楼层

数据也要看一下吧…我感觉是不是你数据导入时候的错误啊~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-11 13:43:47 | 显示全部楼层
二爷名声在外 发表于 2014-11-11 08:23
数据也要看一下吧…我感觉是不是你数据导入时候的错误啊~

数据本来是input  x 688*15,output y  688*1,后来作了一个转置,就成了15*688,作为X,1*688,作为Y。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-11 13:47:01 | 显示全部楼层
二爷名声在外 发表于 2014-11-11 08:23
数据也要看一下吧…我感觉是不是你数据导入时候的错误啊~

这是我的数据,

fedora-intelfortran-WRF.doc

31.5 KB, 下载次数: 7, 下载积分: 金钱 -5

data.mat

31.9 KB, 下载次数: 30, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-11 13:50:43 | 显示全部楼层
无敌泡 发表于 2014-11-11 13:43
数据本来是input  x 688*15,output y  688*1,后来作了一个转置,就成了15*688,作为X,1*688,作为Y。

.mat是我的数据,那个.doc不是,粘贴附件我还不熟
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-11-11 15:25:17 | 显示全部楼层
导入之后把input和output转置一下,说了是数据的问题了……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-11 15:38:16 | 显示全部楼层
二爷名声在外 发表于 2014-11-11 15:25
导入之后把input和output转置一下,说了是数据的问题了……

果然是啊,我还以为我已经做过转置了,不需要再弄了。出来结果了。就是效果差了点。多谢二爷!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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