资源简介
本文件功能:用BP神经网络预测温湿度。
本次仿真,预测模型为8*8*8*1,输入数据为359天数据(一个小时测一个数据,一天数据为24)。其中350天数据做训练样本,用来训练BP网络模型的权值和阈值,4天用来做测试样本,用来测试3天左右的温湿度预测值。
本次训练效果比较上次仿真较为准确,判定系数可以达到0.8左右(越靠近1表明仿真效果越好),预测值与实际值点状图基本围绕在主对角线左右,MSE平方误差可以达到0.01,BP网络预测输出图也可以看出预测值的变化趋势基本与期望值一致。
本次仿真存在不足:
1.未修改学习率、附加动量等参量没有解决BP网络收敛慢的问题。
2.没有使用全局优化的算法,没有解决BP容易陷入极值点的问题。
这种用BP网络来进行预测的模型网上有很多,但是大多数都是预测风力发电等,可能也是因为该BP模型是40年代所提出,我是没有找到有温湿度的预测,该代码纯属自己改写的,并且运行无误,现在分享出来,让大家节省一些时间去研究更有深度的算法。

代码片段和文件信息
%% 该代码为基于双隐含层BP神经网络的预测
%% 清空环境变量
clc
clear
%% 训练数据预测数据提取及归一化
%装载输入输出数据
load temperature
load humidity
tday = 350; %训练数据时间
sday = 10; %预测数据时间
sdata = (tday+sday)*24; %总的采集数据个数
oddata = 24; %一天采集的数据个数
%在10天的数据中将10分钟的数据提取出来,总计2880个
temperature = Temp(1:1:sdata:);
humidity = Humidity(1:1:sdata:);
% information=[temp humidity];
% 初始化数据
[mn]=size(temperature);
n = 8;
% m = (m-sday*oddata/10)-oddata/10-n+1;
m = (m-sday*oddata)-oddata-n+1;
input = zeros(mn);
output = zeros(m1);
%找出训练数据和预测数据
for i = 1:m
% input_train(i1:n/2) = temperature_10_14(i:i+5:);
% input_train(in/2+1:n) = humidity(i:i+5:);
% output_train(i:) = temp(i+oddata/10:);
input_train(i1:n/2) = temperature(i:i+3:);
input_train(in/2+1:n) = humidity(i:i+3:);
output_train(i:) = temperature(i+oddata:);
end
[mn] = size(temperature);
n = 8;
% m = (m-tday*oddata/10)-oddata/10-n+1;
m = (m-tday*oddata)-oddata-n+1;
for i = 1:m
% input_test(i1:n/2) = temp(i+tday*oddata/10:i+5+tday*oddata/10:);
% input_test(in/2+1:n) = humidity(i+tday*oddata/10:i+5+tday*oddata/10:);
% output_test(i:) = temp(i+oddata/10+tday*oddata/10:);
input_test(i1:n/2) = temperature(i+tday*oddata:i+3+tday*oddata:);
input_test(in/2+1:n) = humidity(i+tday*oddata:i+3+tday*oddata:);
output_test(i:) = temperature(i+oddata+tday*oddata:);
end
input_train=input_train‘;
output_train=output_train‘;
input_test = input_test‘;
output_test=output_test‘;
%选连样本输入输出数据归一化
[inputninputps]=mapminmax(input_train01);
[outputnoutputps]=mapminmax(output_train01);
%% BP网络训练
% %初始化网络结构
net=newff(inputnoutputn[8 8]);
net.trainParam.epochs=200;
net.trainParam.lr=0.1;
net.trainParam.goal=0.0000004;
%网络训练
[nettr]=train(netinputnoutputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax(‘apply‘input_testinputps01);
%网络预测输出
an=sim(netinputn_test);
%网络输出反归一化
BPoutput=mapminmax(‘reverse‘anoutputps);
%% 结果分析
figure(1)
subplot(231)
plot(BPoutput‘:og‘)
hold on
plot(output_test‘-*‘);
legend(‘预测输出‘‘期望输出‘)
title(‘BP网络预测输出‘‘fontsize‘12)
ylabel(‘函数输出‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)
%预测误差
error=BPoutput-output_test;
subplot(232)
plot(error‘-*‘)
title(‘BP网络预测误差‘‘fontsize‘12)
ylabel(‘误差‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)
subplot(233)
plot((output_test-BPoutput)./BPoutput‘-*‘);
title(‘神经网络预测误差百分比‘)
ylabel(‘误差百分比‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)
errorsum=sum(abs(error));
subplot(234)
plot(errorsum‘-*‘);
title(‘神经网络预测误差绝对值‘)
ylabel(‘误差绝对值‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)
% a = tr.num_epochs;
% MSE = mse(error);
subplot(235)
plot(tr.epochtr.perf‘‘r‘tr.epochtr.vperf‘‘:g‘tr.epochtr.tperf‘‘-.b‘);
% legend([‘终止代数=‘ num2str(a)])
legend(‘训练‘‘确证‘‘测试‘-1)
title(‘误差曲线‘)
ylabel(‘MSE误差平方‘‘fontsize‘12)
xlabel(‘进化代数‘‘fontsize‘12)
fenmu = sum((output_test-mean(BPoutput)).^2);
fenzi = sum((output_test-BPoutput).^2);
R = 1-fenzi/fenmu;
subplot(236)
plot(BPoutputoutput_test‘.‘);
legend([‘R =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3378 2019-10-14 21:57 BP预测温度模型_2019.10.14\BP_Hidden.m
文件 134465 2019-10-14 18:21 BP预测温度模型_2019.10.14\humidity.mat
文件 882 2019-10-14 21:52 BP预测温度模型_2019.10.14\readme.txt
文件 936 2019-10-14 18:24 BP预测温度模型_2019.10.14\simpletime.m
文件 303265 2019-10-14 18:21 BP预测温度模型_2019.10.14\temperature.mat
文件 126722 2019-10-14 21:31 BP预测温度模型_2019.10.14\temperature_prediction.jpg
文件 16197871 2019-02-19 00:58 BP预测温度模型_2019.10.14\WeatherHistory.csv
目录 0 2019-10-14 21:48 BP预测温度模型_2019.10.14
----------- --------- ---------- ----- ----
16767519 8
- 上一篇:罗氏线圈以及积分器介绍
- 下一篇:合泰单片机选型
相关资源
- bp神经网络源代码,可直接运行
- 改进的BP神经网络算法
- 基于bp神经网络的表情识别
- 基于ARIMA、BP神经网络与GM的组合模型
- 基于双隐含层BP神经网络的预测
- 基于PSO优化BP神经网络的水质预测研究
- BP神经网络算法逼近一个正弦函数
- 基于主成分分析与BP神经网络的雾天能
- 基于BP神经网络的挖掘机液压系统故障
- BP神经网络在手机评价中的应用
- 基于因素分析与BP神经网络的上市公司
- BP神经网络计算过程详解
- 基于BP神经网络电力系统短期负荷预测
- BP神经网络用于两类图片识别分类
- 各种优化BP神经网络算法
- 基于BP神经网络的车牌识别技术
- 基于LabVIEW的BP神经网络算法的设计实
- bp神经网络图像识别
- 基于BP神经网络的人脸识别的源代码
- BP神经网络在GPS高程拟合中的应用
- bp神经网络轴承故障诊断系统
- 基于遗传算法的BP神经网络在多目标优
- 论文:基于BP神经网络和GM1,1模型的
- BP神经网络详解与
- 车牌识别课程设计,能运行,模板匹
- BP数字识别代码——了解和测试BP神经
- BP神经网络实现函数拟合
- 基于PCA和BP神经网络的人脸识别
- excel版BP神经网络,公式运算
- BP神经网络的算法改进及应用
评论
共有 条评论