上一遍博客简单的介绍了LSTM神经网络的工作原理,

有兴趣的打开了解一下:

https://blog.csdn.net/weixin_52486467/article/details/126301845

显目介绍:

一、问题背景 电力系统负荷(电力需求量,即有功功率)预测是指充分考虑历史的系统负荷、经济 状况、气象条件和社会事件等因素的影响,对未来一段时间的系统负荷做出预测。负荷预 测是电力系统规划与调度的一项重要内容。短期(两周以内)预测是电网内部机组启停、 调度和运营计划制定的基础;中期(未来数月)预测可为保障企业生产和社会生活用电, 合理安排电网的运营与检修决策提供支持;长期(未来数年)预测可为电网改造、扩建等 计划的制定提供参考,以提高电力系统的经济效益和社会效益。 复杂多变的气象条件和社会事件等不确定因素都会对电力系统负荷造成一定的影响, 使得传统负荷预测模型的应用存在一定的局限性。同时,随着电力系统负荷结构的多元 化,也使得模型应用的效果有所降低,因此电力系统负荷预测问题亟待进一步研究。

二、解决问题

1.地区负荷的中短期预测分析 根据附件中提供的某地区电网间隔 15 分钟的负荷数据,建立中短期负荷预测模型:

(1)给出该地区电网未来 10 天间隔 15 分钟的负荷预测结果,并分析其预测精度;

(2)给出该地区电网未来 3 个月日负荷的最大值和最小值预测结果,以及相应达到负 荷最大值和最小值的时间,并分析其预测精度。

2.行业负荷的中期预测分析 对不同行业的用电负荷进行中期预测分析,能够为电网运营与调度决策提供重要依 据。特别是在新冠疫情、国家“双碳”目标等背景下,通过对大工业、非普工业、普通工 业和商业等行业的用电负荷进行预测,有助于掌握各行业的生产和经营状况、复工复产和 后续发展走势,进而指导和辅助行业的发展决策。请根据附件中提供的各行业每天用电负 荷相关数据,建立数学模型研究下面问题:

(1)挖掘分析各行业用电负荷突变的时间、量级和可能的原因。
​(2)给出该地区各行业未来 3 个月日负荷最大值和最小值的预测结果,并对其预测精 度做出分析。 (3)根据各行业的实际情况,研究国家“双碳”目标对各行业未来用电负荷可能产生 的影响,并对相关行业提出有针对性的建议。

数据说明:

⚫ 附件 1 提供了某地区电网 2018 年 1 月 1 日至 2021 年 8 月 31 日间隔 15 分钟的电力系 统负荷数据,具体数据结构示例如下

⚫ 附件 2 提供了该地区四个行业 2019 年 1 月 1 日至 2021 年 8 月 31 日用电日负荷最大 值和最小值数据,具体数据结构示例如下:

⚫ 附件 3 提供了该地区 2018 年 1 月 1 日至 2021 年 8 月 31 日主要的气象数据,具体数 据结构示例如下

注:数据来源泰迪数据挖掘赛

先上数据(这里上两份数据 1是经过清洗过的数据 2是原数据)

原数据:

链接:https://pan.baidu.com/s/1xVD024sTkXgFm8wBom-MeA 
提取码:mzyn

直接使用到模型数据:

链接:https://pan.baidu.com/s/1aVU6v9h99193cgoEX8Jz2w 
提取码:ownp

这里只展示LSTM 模型 当时做的时候我也做了lightgbm、catboost、xgboost、以及三个模型的融合模型 这些后续整理好也会发出来

先导入所需要的模块

import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
import datetime

数据预处理

x = data[[ '最高温度', '最低温度', '白天风力风向', '夜晚风力风向','白天风力风向1', '夜晚风力风向1', '天气1', '天气2', '月', '天', '小时', '一年第几天', '一年第几周','一周第几天', '是否节假日', '季节']]y = data['总有功功率(kw)']y=np.array(y).reshape(-1,1)
#x归一
x = MinMaxScaler().fit_transform(x)
#y归一
mm = MinMaxScaler().fit(y)
y = mm.transform(y)time_stamp = 50
train = x[0:int(len(x)*0.8)+ time_stamp]
valid = x[int(len(x)*0.8) - time_stamp:]X_train, y_train = [], []
for i in range(len(train)-time_stamp):X_train.append(train[i:i+time_stamp,:])y_train.append(train[i, :][:])
X_train, y_train = np.array(X_train), np.array(y_train)X_valid, y_valid = [], []
for i in range(len(valid)-time_stamp):X_valid.append(valid[i:i+time_stamp,:])y_valid.append([valid[i,:]])
X_true, y_true = np.array(X_valid), np.array(y_valid)
print(X_train.shape)
print(y_train.shape)

搭建神经网络模型(LSTM)

#模型构建
epochs = 30
batch_size =256
from keras.models import Sequential
from keras.layers import Dropout, Dense, LSTMstaet = datetime.datetime.now()model = Sequential()
model.add(LSTM(50,#神经元#input_shape=(X_train.shape[1],X_train.shape[-1]),input_dim=X_train.shape[-1],#特征input_length=X_train.shape[1],#步长return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(units=50))
model.add(Dense(16))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X_train, y_train, epochs=epochs, batch_size=batch_size, verbose=1)train_pre = model.predict(X_train)
y_pre1 = model.predict(X_true)y_pre11=mm.inverse_transform(y_pre1)  #反归一化
train_pre=mm.inverse_transform(train_pre)  #反归一化
# yz_pre=mm.inverse_transform(yz_pre)  #反归一化
y = mm.inverse_transform(y.reshape(-1,1))
y_true = mm.inverse_transform(y_true.reshape(-1,16))
from sklearn import metrics
print('LSTM预测RMSE:', np.sqrt(metrics.mean_squared_error(y_true, y_pre11)))
print('LSTM预测MAE:', metrics.mean_absolute_error(y_true, y_pre11))
end = datetime.datetime.now()
print(end-staet)
pre = model.predict(x.loc[1345,'总有功功率'])
print(pre)

绘图

pre = model.predict(x.loc[1345,'总有功功率'])
print(pre)
print('画图')
import matplotlib.pyplot as plt
plt.figure(figsize=(500,50))
plt.plot([x for x in train_pre.flatten()],c='y')
plt.plot(y.flatten(),c='b')
plt.plot([None for _ in train_pre.flatten()]+[x for x in y_pre11.flatten()],c='r')
plt.show()
print('画图结束')

活动地址:CSDN21天学习挑战赛

LSTM神经网络实战相关推荐

  1. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)

    干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译  参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...

  2. 数据分享 | LSTM神经网络架构和原理及其在Python中的预测应用(附视频)

    本文约2800字,建议阅读10+分钟 本文与你分享如何使用长短期记忆网络(LSTM)来拟合一个不稳定的时间序列. 长短期记忆网络--通常称为"LSTM"--是一种特殊的RNN递归神 ...

  3. 【深度学习】LSTM神经网络解决COVID-19预测问题(二)

    [深度学习]LSTM神经网络解决COVID-19预测问题(二) 文章目录 1 概述 2 模型求解和检验 3 模型代码 4 模型评价与推广 5 参考 1 概述 建立一个普适性较高的模型来有效预测疫情的达 ...

  4. 【深度学习】LSTM神经网络解决COVID-19预测问题(一)

    [深度学习]LSTM神经网络解决COVID-19预测问题 文章目录 1 概述 2 数据分析 3 SIR模型和LSTM网络的对比 4 LSTM神经网络的建立 5 参考 1 概述 我们将SIR传播模型和L ...

  5. LSTM神经网络 和 GRU神经网络

    LSTM是什么 LSTM即Long Short Memory Network,长短时记忆网络.它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的. 我们说RNN不能处 ...

  6. 图解LSTM神经网络架构及其11种变体(附论文)

    来源:机器之心 英文原文:Deep learning architecture diagrams 参与:老红.李亚洲 原文链接:图解LSTM神经网络架构及其11种变体(附论文) 本文经机器之心(微信公 ...

  7. 【Pytorch神经网络实战案例】21 基于Cora数据集实现Multi_Sample Dropout图卷积网络模型的论文分类

    Multi-sample Dropout是Dropout的一个变种方法,该方法比普通Dropout的泛化能力更好,同时又可以缩短模型的训练时间.XMuli-sampleDropout还可以降低训练集和 ...

  8. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

    1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...

  9. tensorflow应用:双向LSTM神经网络手写数字识别

    tensorflow应用:双向LSTM神经网络手写数字识别 思路 Python程序1.建模训练保存 Tensorboard检查计算图及训练结果 打开训练好的模型进行预测 思路 将28X28的图片看成2 ...

  10. 【项目调研+论文阅读】Lattice LSTM神经网络医学文本命名实体识别 | day7

    <Lattice LSTM神经网络法中文医学文本命名实体识别模型研究>2019 文章目录 一.模型步骤 1.Lattiice-LSTM分词+表征词汇 2.LSTM-CRF  经证实,英文N ...

最新文章

  1. disruptor框架为什么不流行_Java并发编程框架Disruptor
  2. UVA - 817According to Bartjens
  3. wildfly 21的配置文件和资源管理
  4. Service Mesh 开源实现之 Istio 架构概览
  5. 广度优先搜索练习之神奇的电梯
  6. ubuntu16.04安装opencv3.1.0(包含opencv_contrib模块)
  7. linux首次安装mysql密码是多少,Linux小白,初次安装MySQL,大神请绕路
  8. R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)
  9. 适合android手机 pdf阅读器,手机版pdf阅读器有哪些 这五款软件一定有适合你的
  10. ionic—alert弹出框
  11. 多媒体文件格式全解说(下)--图片
  12. 西数云存储 重置 使用手册_如何重置IE浏览器(以IE8 为例),并添加信任网址...
  13. Office文件转PDF的解决方案
  14. 八种常见视频格式转换详解
  15. 启用静态NVI的NAT的配置步骤及示例
  16. java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势
  17. 单独二孩政策对中小城镇居民生育意愿影响实践调查报告(20100字)
  18. 论文阅读 Solving Mixed Integer Programs Using Neural Networks
  19. #Matlab# Yalmip CPLEX使用
  20. Django 快速入门课程「搭建个人博客」

热门文章

  1. 基于PHP的个人博客网站系统
  2. 写给非网工的CCNA教程(1)IP地址和MAC地址
  3. 二十三又是谁的二十三
  4. oracle10g最快安装教程,史上最详细Oracle 10g安装教程
  5. 汇编语言程序设计实验(六)——子程序设计
  6. 易语言钩子DLL注入源码及源码说明
  7. HTML 制作一个通讯录
  8. QQ概念版(WPF制作)
  9. Andriod Recovery模式及ClockworkMod Recovery简介
  10. 8款流行前沿的HTML5文本编辑器