LSTM进行时间序列预测

  • 处理数据集
  • 搭建时间序列网络
  • 计算误差

处理数据集

本文使用的是某风场采集的风电功率,其他同学可以参考类似的时间序列数据集。本文假设读者已会载入数据并进行数据预处理,例如归一化等操作。

def creat_data(data,lookback,step):timeX,featureX1,featureX2,featureX3,dataY = [],[],[],[],[]for i in range(len(data) - lookback-step ):timeX.append(data[i:(i + lookback),[0]])featureX1.append(data[i:(i + lookback), [1]])featureX2.append(data[i:(i + lookback), [2]])featureX3.append(data[i:(i + lookback), [3]])dataY.append(data[i + lookback+step-1,[0]])return np.array(timeX),np.array(featureX1),np.array(featureX2),np.array(featureX3), np.array(dataY)
X_train_time,X_train_feature1,X_train_feature2,X_train_feature3,Y_train=creat_data(dataset[:5730],120,1)
X_test_time,X_test_feature1,X_test_feature2,X_test_feature3,Y_test=creat_data(dataset[5730:7000],120,1)

上述为构建的数据集的函数,其中X_train_time为时间序列的训练集,X_train_feature1,X_train_feature2,X_train_feature3为涉及到的三个特征(同样具有时间性),分别为叶轮转速、环境风速、风向(也可以添加更多特征),Y_train为需要预测的那个值,这里指功率。

搭建时间序列网络

这里使用最常用的LSTM网络,将各个特征及时间序列特征融合输入到网络中。其中的LSTM层可以自行调节参数,也可自行增减层数。

from keras.models import Sequential,Model
from keras.layers import Dense
from keras.layers.recurrent import LSTM
from keras import Input,layers
model = Sequential()
# 调整输入的维度,LSTM的输入维度应为3维,即(样本个数,步长,几类特征)
input_time=Input(shape=(None,X_train_time.shape[-1]))
input_time=layers.LSTM(12,return_sequences=True,activation='relu')(input_time)
input_feature1=Input(shape=(None,X_train_feature1.shape[-1]))
input_feature2=Input(shape=(None,X_train_feature2.shape[-1]))
input_feature3=Input(shape=(None,X_train_feature3.shape[-1]))
x_feature1=layers.LSTM(12,return_sequences=True,activation='relu')(input_feature1)
x_feature2=layers.LSTM(12,return_sequences=True,activation='relu')(input_feature2)
x_feature3=layers.LSTM(12,return_sequences=True,activation='relu')(input_feature3)
output1=layers.LSTM(4)([X_train_time,x_feature1,x_feature2,x_feature3])
output=layers.Dense(1)(output1)model=Model([X_train_time,x_feature1,x_feature2,x_feature3],output)
model.compile(loss='mae', optimizer='adam')
history =model.fit([X_train_time,X_train_feature1,X_train_feature2,X_train_feature3],Y_train,steps_per_epoch=300,epochs=10,validation_data=([X_test_time,X_test_feature1,X_test_feature2,X_test_feature3],Y_test),validation_steps=(3100-2880-120))

通过迭代图像判断是否存在过拟合或者欠拟合,以便进行调整。

loss = history.history['loss']
val_loss = history.history['val_loss']
plt.plot(loss, label='Train Loss')
plt.plot(val_loss, label='Validation Loss')
plt.legend(loc='upper right')
plt.title('Train and Val Loss')
plt.show()

计算误差

计算预测值与真实值之间的误差,此处采用MAE及RMSE。

trainPredict = model.predict([X_train_time,x_feature1,x_feature2,x_feature3])
testPredict=model.predict([X_test_time,X_test_feature1,X_test_feature2,X_test_feature3])
from math import sqrt
from sklearn.metrics import mean_squared_error,mean_absolute_error
err1 = mean_absolute_error(testPredict,Y_test)
err2 = sqrt(mean_squared_error(testPredict,Y_test))
print('mae', err1)
print('rmse',err2)

时间及特征融合进行风功率预测相关推荐

  1. 基于深度神经网络的风电场超短期功率预测系统【数据故事计划最佳学术奖】...

    摘要:细听学长学姐讲故事,或许在他们的路上也有你的身影! [第一届数据故事计划] "数据故事计划"旨在收集各类有关大数据的故事然后进行比赛及相关的宣传和推广.包括同学们接触大数据. ...

  2. 风电功率预测_复杂地形风电场的风功率预测技术研究

    点击蓝字关注我们 随着全球能源高速增长,气候变化和生态环境问题日益突出,风能作为一种可再生能源,受到各国重视.2013年,中国新增装机容量16088.7MW,累计装机容量91412.89MW,新增装机 ...

  3. 目标检测 | 盘点目标检测中的特征融合技巧(根据YOLO v4总结)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 特征融合分类 在深度学习的很多工作中(例如目标检测.图像分割),融 ...

  4. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MUFFIN:用于DDI预测的多尺度特征融合

    2.(2021.3.15)Bioinformatics-MUFFIN:用于DDI预测的多尺度特征融合 论文标题: MUFFIN: multi-scale feature fusion for drug ...

  5. 风力发电功率预测数据(两个风力发电场25台风力发电机2年发电数据,时间间隔30min,含风速、风向、外界温度等天气特征)

    下载地址:风力发电功率预测数据(两个风力发电场25台风力发电机2年发电数据,时间间隔30min,含风速.风向.外界温度等天气特征)

  6. 论文翻译:《6mAPred-MSFF:基于多尺度特征融合机制预测跨物种DNA N6-甲基腺嘌呤位点的深度学习模型》

    Title:6mAPred-MSFF: A Deep Learning Model for Predicting DNA N6-Methyladenine Sites across Species B ...

  7. 层与特征融合_【计算机系统应用】(第122期)感受野特征增强的 SSD 目标检测算法...

    点击上方"蓝字",关注我们吧! 目标检测是计算机视觉领域的一项重要任务, 是 生活中如实例分割[1] , 面部分析[2] , 汽车自动驾驶[3].视 频分析[4] 等各种视觉应用的 ...

  8. 涨点神器!南航提出AFF:注意力特征融合,即插即用!可用于分类、检测和分割等...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 作者:OucQxw  |  已授权转载(源:知乎) https://zhuanlan.zhihu.com/p ...

  9. DC竞赛 国能日新功率预测题 rank21 解决方案(适合新手)

    DataCastle国能日新光伏功率预测 数据异常处 本题在测试集中提供了时间.辐照度.风速.风向.温度.压强.湿度.实发辐照度 8个特征,以及标签**实际功率**. 而在训练集中只有前七个特征,无实 ...

最新文章

  1. NHIBERNATE
  2. mac安装git客户端
  3. 程序员应知——团队精神(转)
  4. 蓝牙连接参数关于IOS的限制
  5. 红米有android,这些是不支持ANDROID 11更新的小米和红米手机
  6. Extjs弹出框的异步执行
  7. 苹果mac专业的图像后期处理软件:Lightroom Classic
  8. Thrift框架简介
  9. SpringMVC入门简单静态资源处理
  10. 常用的高光谱遥感影像数据集(详细介绍+下载链接)
  11. 数字贸易标准体系框架
  12. 9.Makefile隐含规则
  13. 苹果笔记本macbook pro如何安装python_Mac OS系统下的安装
  14. 解决Chrome账户无法同步
  15. 人才缺口30万,市场需求每年涨20% ,这一 IT 岗位你知道嘛
  16. python arp断网攻击_ARP断网攻击的原理与解决方法讲解 | 小马激活官网
  17. C# 电子印章制作管理系统
  18. 面向对象分析与设计——ATM系统词汇表
  19. 全国计算机等级考试三级网络技术
  20. linux网卡驱动离线安装_linux系统如何安装网卡驱动

热门文章

  1. 《深入浅出通信原理》阅读引导
  2. 汇编实现DLL注入器
  3. css写的一个简单的幻灯片效果页面
  4. 北师大网络教育线计算机试题六,北师大网络教育-网络部分综合作业
  5. block: cfq 学习01
  6. HTML5+CSS大作业——IT技术个人简历(1页)
  7. 前端数组删除元素字典操作
  8. Maven与Antx整理
  9. StringBuilder比String快?空嘴白牙证据呢
  10. 造了一台计算机,造一台红石电脑:我是说真的造出来