matlab中 nntwarn off,network的subsindex的定义问题
%% 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的定义问题相关推荐
- matlab中的Neural Network Training(nntraintool)界面的解释
1,Neural Network 这里显示的是输入大小,中间层数量以及每层的神经元个数. 2,Algorithms (括号中的灰色字体都是链接,可以查看) Training:RProp.这表示学习训 ...
- matlab repmate,MATLAB中“repmat”与“cat”函数的用法
MATLAB中"repmat"与"cat"函数的用法 1. repmat函数 >> z=repmat(5,2,3) z = 5 5 5 5 5 5 ...
- matlab中的 complete,Complete-collection-of-algorithm
Complete-collection-of-algorithm 所属分类:matlab例程 开发工具:matlab 文件大小:7504KB 下载次数:2446 上传日期:2010-11-08 16: ...
- matlab中nntool,Matlab nntool 应用实例(很不错啊)
在MATLAB命令視窗中鍵入nntool再按enter,會自動彈出下面的Network/Data Manager視窗畫面 Inputs:輸入值 Targets:目標輸出值 Input Delay St ...
- matlab中的神经网络怎么用,matlab怎么搭建神经网络
1.怎样用matlab建立bp神经网络 net=train(net, p, t);把这句改成net=train(net, p', t');试试,matlab应该默认使用列向量.或者直接使用matlab ...
- matlab里newff,新版matlab中神经网络训练函数newff的使用方法
新版matlab中神经网络训练函数newff的使用方法 新版 Matlab 中神经网络训练函数 Newff 的使用方法一. 介绍新版 newffSyntax net = newff(P,T,[S1 ...
- 利用MATLAB中的newrb函数进行函数逼近
RBF函数在神经网络控制中较为常见,MATLAB中早已集成了一个newrb的函数,在一些场景下使用起来还比较方便.尤其是涉及到进行函数逼近的时候. 参考链接 http://blog.sina.com. ...
- 下载BNT工具包以及配置到matlab中
matlab添加BNT工具包 引言 正文 1.下载BNT工具包 2.将BNT包配置到matlab中 引言 BNT工具包全称Bayesian network Toolkit,供大家学习贝叶斯网络的结构. ...
- MATLAB中利用ncread函数读取nc文件
MATLAB读取NC文件 一. 目的: 了解NETCDF文件,学会利用MATLAB读取NETCDF文件 二. 撰写时间 开始时间:2016年12月03日 完成时间:2016年12月09日 三.知识储 ...
最新文章
- devops_最低可行DevOps
- JSP内置对象-page
- wpf prism IRegionManager 和IRegionViewRegistry
- scholar communication
- 最后两周!60万奖金AI攻防赛进入冲刺(附baseline代码及实操)
- python中的线程之semaphore信号量
- 华强北三代悦虎1562A怎么样?
- 控制cpu_I/O控制器及控制方式,了解一下
- 有向无环图描述表达式
- maven配置testng_TestNG Maven Surefire插件配置
- poj3614(Sunscreen)优先队列+贪心
- 华三 h3c vrrp和监视端口配置
- 手工增加widcomm对蓝牙USB dongle的识别
- Linux 命令 速记
- 芯片手册不需要全部看,抓住框架信息即可
- 百度汇率转换接口 php,利用yahoo汇率接口实现实时汇率转换示例 汇率转换器_php实例...
- Xcelsius数据源概述
- ISO 8601规则
- 考研人最想崩溃大哭的10个瞬间,看完第一条已泪奔!
- 两台不同的型号的路由器桥接
热门文章
- ASP.NET GridView中使用搜索框(SearchableGridView)
- Python正则表达式模式备忘表
- weblogic domain creation
- 做过CC1020的苦逼前人告诉你(分拿来)
- 重学C---------第五节:常量
- 基于applet与ServerSocket的网络聊天室(记得是上学的时候写的,现在都忘了,记录一下)...
- 【python】*与** 参数问题
- 使IE6支持PNG透明图片的JS插件
- KM算法 详解+模板
- 【体系结构】Oracle的各种文件及其重要性