: | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | clc;clear %% 训练数据预测数据提取及归一化 % 载入输入输出数据 load data input output % 从1到2000间随机排序 k = rand(1, 2000); [m, n] = sort(k); % 出训练数据和预测数据 input_train = input(n(1:1900), :)'; output_train = output(n(1:1900)); input_test = input(n(1901:2000), :)'; output_test = output(n(1901:2000)); %选连样本输入输出数据归一化神经网络预测 [inputn, inputps] = mapminmax(input_train); [outputn, outputps] = mapminmax(output_train); %% 构建和训练BP神经网络 % BP神经网络构建 net = newff(inputn, outputn, 5); % 网络参数配置(迭代次数,学习率,目标) = 100; = ; = ; % 网络训练,并记录训练时间 tic; % start time record net = train(net, inputn, outputn); t1 = toc; % (end-start) time record disp(['神经网络的训练时间为', num2str(t1), '秒']); %% BP网络预测 % 预测数据归一化 inputn_test = mapminmax('apply', input_test, inputps); % 网络预测输出 an = sim(net, inputn_test); % 网络输出反归一化 BPoutput = mapminmax('reverse', an, outputps); %% 结果分析 figure(1); plot(BPoutput, ':og'); hold on; plot(output_test, '-*'); legend('预测输出', '期望输出'); title(' BP网络预测输出', 'fontsize', 12); ylabel('函数输出', 'fontsize', 12); xlabel('样本', 'fontsize', 12); % 预测误差 error = BPoutput-output_test; figure(2); plot(error, '-*'); title(' BP神经网络预测误差', 'fontsize', 12); ylabel('误差', 'fontsize', 12); xlabel('样本', 'fontsize', 12); figure(3); plot((output_test-BPoutput)./BPoutput, '-*'); title(' BP神经网络预测误差百分比'); errorsum = sum(abs(error)); |
本文发布于:2024-09-22 09:39:20,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/1/361742.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |