源于一次对于Self-attention的错误理解,产生了使用样本之间的相似度来提供参考值的做法
模型结构很简单,就是使用测试样本作为样本池,用当前样本和样本池中的样本做一个Attention,得到的参考值拼接到原有的特征维度上,然后导入LSTM层里
效果很不错,拟合效果和预测效果都可以
数据使用的某城市某区的非公开的电力数据集,这里不会上传,相关的数据也会做隐藏。数据量本身很小,总共68个时间点。做过时序预测的都会苦恼这个数据量的问题,但这个模型对数据量小的数据集还是挺友好的。
数据里本身包含几千户的用电曲线,这些用户大多数都是大工业用户和商业用户,用电量与季节的相关性不强。为了解决这个问题,我先对这些用户进行聚类,聚类后对其中一类进行了整体预测。
可以看到,效果还是很不错的,就是有一个异常点误差比较大34%。经过历史数据的查询,发现该时间点对应的是2022年4月,正好是疫情影响最严重的时间,与2021年相比,下挫了25%。如果按照正常规律发展,应该比往年略微有所上升。因此,如果不考虑疫情的影响,该点误差应该会落在10%以内。总误差2.67%