BP神经网络数据滚动预测
百度网盘链接:链接:http://pan.baidu.com/s/1qXZfg0c
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
BP神经网络数据滚动预测 思路:上一时刻数据预测下一时刻数据(只是构造训练样本而已,例如在双色球、股票预测等中常用到):
(1)归一化处理:mapminmax
(2)返回当前路径的上一路径:addpah('..\')
(3)元胞体数据的mat化:cell2mat
%% BP网络的预测
%% 清空环境变量
clc,clear,close all
warning off
format shortG
addpath('..\')
% 导入数据
% data = importfile('数据.xlsx','Sheet1','A1:K16');
% save data.mat data
load data.mat
% 训练数据和预测数据
input_train = cell2mat(data(2:11,:))';
input_test = cell2mat(data(12:end-1,:))';
% 输出数据
output_train = cell2mat(data(3:12,:))';
output_test = cell2mat(data(13:end,:))';
% 选连样本输入输出数据归一化
=mapminmax(input_train);
=mapminmax(output_train);
inputn_test=mapminmax('apply',input_test,inputps);
outputn_test=mapminmax('apply',output_test,outputps);
%% 网络结构初始化
% 节点个数
inputnum=11;
hiddennum=15;
outputnum=11;
% 初始化网络结构
nntwarn off
% 多隐藏层
% net=newff(input_train,output_train,,{'logsig','tansig'},'trainlm');
% net=newff(input_train,output_train,,{'logsig','logsig'},'trainlm');
% 单隐藏层
% net=newff(inputn,outputn,hiddennum,{'logsig','logsig'},'trainlm');
net=newff(inputn,outputn,hiddennum,{'logsig','tansig'},'trainlm');
net.trainParam.epochs=300;
net.trainParam.lr=0.01;
net.trainParam.goal=1e-16;
net.trainParam.min_grad = 1e-16;
net.trainParam.show=100;
net.trainParam.showWindow=1;
net.trainParam.max_fail=200;
% 网络训练
=train(net,inputn,outputn);
% BP网络预测
% 训练样本--预测输出
yc_train = sim(net,inputn);
error_train = abs(yc_train-outputn);
disp(['训练样本均方根误差 = ',num2str(mse(error_train))])
train_simu=mapminmax('reverse',yc_train,outputps);
% 测试样本--预测输出
yc_test = sim(net,inputn_test);
error_test = abs(yc_test-outputn_test);
disp(['测试样本均方根误差 = ',num2str(mse(error_test))])
test_simu=mapminmax('reverse',yc_test,outputps);
rmpath('..\')
数据如下:
'C1' '010' '011' '012' '013' '014' '015' '016' '017' '018' '019'
38806 3214 66547 12779 22178 9659 1125 43904 7002 6283 1328
39732 3452 69457 13215 20445 9538 1162 42904 7297 5728 1374
42539 3521 70618 14175 21788 10452 1042 46816 7445 5953 1487
59921 8206 97935 20231 40629 18206 1876 79519 12440 9572 5902
62207 9000 98546 21341 41224 18450 1708 83525 12684 9034 6406
61841 9316 95524 21814 40516 18744 2366 83737 12074 9518 6676
59000 9106 95169 20895 39648 17274 1850 79603 10300 8853 6715
60519 7771 93502 20594 39313 17683 2212 83599 11095 9540 7782
45880 4891 69845 15066 25910 11646 981 58383 7538 6784 2426
45152 4180 65242 14471 22955 10843 825 53894 7256 5381 1973
63105 8374 95871 21532 39586 18103 1581 88389 11799 9512 6935
63204 9215 96761 21063 40563 17112 1458 86927 9471 9395 6627
63601 8765 92875 21946 39049 16255 1751 83535 11152 8830 6748
62061 8283 97337 21589 36235 16408 1430 78525 9929 8621 5981
64300 8337 91785 21375 34440 18013 1486 80286 9819 9328 7077
很棒的分享,希望博主坚持下去 你好楼主,输入数据的测试集怎么是(12:end-1),此处为什么要减一呢 夏天的风 发表于 2019-11-25 22:48
你好楼主,输入数据的测试集怎么是(12:end-1),此处为什么要减一呢
参考例子而已,不用太在意,根据自己的问题来 很棒的分享,希望我可以继续学习相关知识
页:
[1]