我在MatLab中使用前馈反向传播ANN。
我需要输入datetime
作为输入,并预测未来24小时的未来热量需求。我有3个热电厂的历史数据,每个热电厂的容量都不同。我输入的ANN是历史热负荷,温度和datetime
,格式为dd.MM.yyyy hh:mm:ss
。
我已将datetime
分别划分为日,月和小时。我还确定了非工作日,并为工作时间创建了一个二进制输入。
我已使用[0;1]
归一化温度以适应x=data-min(data)/(max(data)-min(data)
的范围。
我的训练数据集是17x17500
矩阵(2016、2017年)和2018年(测试)数据集17x8566
。
目标数据是该时段的归一化热负荷。
当我将该网络(函数)用于测试数据集时,我得到了不好的结果。但是当我比较预测值和原始值时,结果确实很好。
输入矩阵:
0.0322580645161290 0.0322580645161290 %day
0.0833333333333333 0.0833333333333333 %month
0.0434782608695652 0.0869565217391304 %hour
0.514701910237105 0.515792343235321 % outside temp
0 0 % morning peak
0 0 % non-working day
0 0 % monday
0 0 %tuesday
0 0 %wednesday
0 0 %thursday
0 0 %friday
1 1 %saturday
0 0 %sunday
0 0 %summer
0 0 %winter
我做了一些谷歌搜索,发现如何通过sin / cos变换对小时等循环数据进行编码(因此,循环输入由2个额外的神经元sin和cos值表示)训练集的预测值确实不错,但是如果我应用函数(神经网络)的另一个数据集,这些结果与测试集的实际负载相去甚远...我都在海上。有改善的建议吗?