%% BP的数据预测—基于K折交叉验证的前馈型神经网络的预测

% by BRAVE

%% 清空环境变量

clc;

clear all

close all

nntwarn off;

%% 载入数据

%%load data input output;

input=[49845        18789        5.06        0.17        14.8        0.18        998.1        526.82;

51252        12477        5.06        0.17        15.2        0.21        1000.5        567.33;

54541        12448        5.17        0.2        16.1        0.21        100.5        579.49;

57954        135185        5.46        0.23        16.5        0.21        1004.6        585.42;

67512        152367        5.46        0.27        18.7        0.26        1004.6        574.06;

74265        182564        6.01        0.25        21.6        0.28        1207.8        601.45;

82045        201547        6.12        0.26        25.8        0.29        1314.8        627.45;

89152        225790        6.21        0.26        30.5        0.31        1426.8        674.56;

96457        240579        6.37        0.28        34.9        0.33        1537.8        716.54;

105651        263854        6.38        0.28        39.8        0.36        1674.5        765.24;

112560        285469        6.65        0.3        42.5        0.39        1754.4        812.22;

116587        294324        6.65        0.3        46.7        0.41        1875.5        875.54;

119580        280754        6.8        0.31        48.9        0.45        1956.41        856.44;];

output=[145697        59571        57132;

146256        62545        59212;

147563        67165        67454;

147569        69263        67362;

169587        79856        78165;

190895        91658        90548;

207458        99635        98752;

228479        106970        102564;

250697        120889        111257;

271254        130475        120365;

290684        145454        135410;

308654        158792        142452;

318454        160446        156854;];

% 载入数据并将数据分成训练和预测两类

input_train=input(1:10,:);

output_train=output(1:10,:);

input_test=input(11:13,:);

output_test=output(11:13,:);

%input_predict=xlsread('jinru.xlsx');

%% K折(k=4)交叉验证

desired_number=[];%隐层神经元个数

mse_max=10e20;

desired_input=[];%理想的输入样本

desired_output=[];%理想的输出样本

result_perfp=[];

indices = crossvalind('Kfold',length(input_train),4);

h=waitbar(0,'正在寻找最优化参数....');

k=1;%??

for i = 1:4

perfp=[];

disp(['以下为第',num2str(i),'次交叉验证结果'])

test = (indices == i);%测试集在数据集input_train中的索引值

train = ~test;%训练集在数据集input_train中的索引值

input_cv_train=input_train(train,:);

output_cv_train=output_train(train,:);

input_cv_test=input_train(test,:);

output_cv_test=output_train(test,:);

input_cv_train=input_cv_train';

output_cv_train=output_cv_train';

input_cv_test= input_cv_test';

output_cv_test= output_cv_test';

[input_cv_train,minp,maxp,output_cv_train,mint,maxt]=premnmx(input_cv_train,output_cv_train);

input_cv_test=tramnmx(input_cv_test,minp,maxp);

for number=1:10

net=newff(input_cv_train,output_cv_train,number,{'tansig','tansig'},'trainlm');

net.trainParam.epochs=10000;

net.trainParam.lr=0.001;

net.trainParam.goal=0.0001;

waitbar(k/80,h);

disp(['当前number值为', num2str(number)]);

net=train(net,input_cv_train,output_cv_train);

test_Out=sim(net,input_cv_test);

test_Out=postmnmx(test_Out,mint,maxt);

error=output_cv_test-test_Out;

disp(['当前网络的mse为',num2str(mse(error))])

perfp=[perfp mse(error)];

if mse(error)

mse_max=mse(error);

desired_number=number;

desired_input=input_cv_train;

desired_output=output_cv_train;

end

k=k+1;

end

result_perfp(i,:)=perfp;

end;

close(h)

disp(['最佳spread值为',num2str(desired_number)])

disp(['此时最佳输入值为'])

desired_input

disp(['此时最佳输出值为'])

desired_output

%% 采用最佳方法建立BP网络

net=newff(desired_input,desired_output,desired_number,{'tansig','tansig'},'trainlm');

net.trainParam.epochs=10000;

net.trainParam.lr=0.001;

net.trainParam.goal=0.0001;

%% BP网络训练

net=train(net,desired_input,desired_output);

%% BP网络测试

input_test=input_test';

input_test=tramnmx(input_test,minp,maxp);

BP_test_result=sim(net,input_test);

BP_test_result=postmnmx(BP_test_result,mint,maxt);

BP_error=output_test-BP_test_result';

disp(['BP神经网络三项流量预测的误差为',num2str(abs(BP_error))])

save best desired_input desired_output input_test output_test BP_error mint maxt

matlab中 nntwarn off,network的subsindex的定义问题相关推荐

  1. matlab中的Neural Network  Training(nntraintool)界面的解释

    1,Neural Network  这里显示的是输入大小,中间层数量以及每层的神经元个数. 2,Algorithms (括号中的灰色字体都是链接,可以查看) Training:RProp.这表示学习训 ...

  2. matlab repmate,MATLAB中“repmat”与“cat”函数的用法

    MATLAB中"repmat"与"cat"函数的用法 1. repmat函数 >> z=repmat(5,2,3) z = 5 5 5 5 5 5 ...

  3. matlab中的 complete,Complete-collection-of-algorithm

    Complete-collection-of-algorithm 所属分类:matlab例程 开发工具:matlab 文件大小:7504KB 下载次数:2446 上传日期:2010-11-08 16: ...

  4. matlab中nntool,Matlab nntool 应用实例(很不错啊)

    在MATLAB命令視窗中鍵入nntool再按enter,會自動彈出下面的Network/Data Manager視窗畫面 Inputs:輸入值 Targets:目標輸出值 Input Delay St ...

  5. matlab中的神经网络怎么用,matlab怎么搭建神经网络

    1.怎样用matlab建立bp神经网络 net=train(net, p, t);把这句改成net=train(net, p', t');试试,matlab应该默认使用列向量.或者直接使用matlab ...

  6. matlab里newff,新版matlab中神经网络训练函数newff的使用方法

    新版matlab中神经网络训练函数newff的使用方法 新版 Matlab 中神经网络训练函数 Newff 的使用方法一. 介绍新版 newffSyntax net = newff(P,T,[S1 ...

  7. 利用MATLAB中的newrb函数进行函数逼近

    RBF函数在神经网络控制中较为常见,MATLAB中早已集成了一个newrb的函数,在一些场景下使用起来还比较方便.尤其是涉及到进行函数逼近的时候. 参考链接 http://blog.sina.com. ...

  8. 下载BNT工具包以及配置到matlab中

    matlab添加BNT工具包 引言 正文 1.下载BNT工具包 2.将BNT包配置到matlab中 引言 BNT工具包全称Bayesian network Toolkit,供大家学习贝叶斯网络的结构. ...

  9. MATLAB中利用ncread函数读取nc文件

    MATLAB读取NC文件 一. 目的: 了解NETCDF文件,学会利用MATLAB读取NETCDF文件 二.  撰写时间 开始时间:2016年12月03日 完成时间:2016年12月09日 三.知识储 ...

最新文章

  1. devops_最低可行DevOps
  2. JSP内置对象-page
  3. wpf prism IRegionManager 和IRegionViewRegistry
  4. scholar communication
  5. 最后两周!60万奖金AI攻防赛进入冲刺(附baseline代码及实操)
  6. python中的线程之semaphore信号量
  7. 华强北三代悦虎1562A怎么样?
  8. 控制cpu_I/O控制器及控制方式,了解一下
  9. 有向无环图描述表达式
  10. maven配置testng_TestNG Maven Surefire插件配置
  11. poj3614(Sunscreen)优先队列+贪心
  12. 华三 h3c vrrp和监视端口配置
  13. 手工增加widcomm对蓝牙USB dongle的识别
  14. Linux 命令 速记
  15. 芯片手册不需要全部看,抓住框架信息即可
  16. 百度汇率转换接口 php,利用yahoo汇率接口实现实时汇率转换示例 汇率转换器_php实例...
  17. Xcelsius数据源概述
  18. ISO 8601规则
  19. 考研人最想崩溃大哭的10个瞬间,看完第一条已泪奔!
  20. 两台不同的型号的路由器桥接

热门文章

  1. ASP.NET GridView中使用搜索框(SearchableGridView)
  2. Python正则表达式模式备忘表
  3. weblogic domain creation
  4. 做过CC1020的苦逼前人告诉你(分拿来)
  5. 重学C---------第五节:常量
  6. 基于applet与ServerSocket的网络聊天室(记得是上学的时候写的,现在都忘了,记录一下)...
  7. 【python】*与** 参数问题
  8. 使IE6支持PNG透明图片的JS插件
  9. KM算法 详解+模板
  10. 【体系结构】Oracle的各种文件及其重要性