基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)

简介: 基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测(Python代码实现)

💥1 概述

电力负荷预测实质是时间序列预测问题,存在非平稳性和影响因素的复杂性。为了提高预测精度,解决长短期记忆神经网络(LSTM)参数选取随机性大、选取困难的问题,本文提出了一种利用麻雀搜索算法(SSA)优化长短期记忆神经网络参数的短期电力负荷预测模型(SSA-LSTM),通过历史用电负荷数据、相关影响因素数据对待预测日进行负荷预测。


本文建立SSA-LSTM模型,进行冷、热、电负荷预测。先对时间序列进行奇异谱分析,对时间序列进行分组、重构,然后利用LSTM进行冷、热、电负荷预测。


1.奇异谱分析:

取窗口大小168(24*7)

以冷负荷为例:

1690648182377.png

均方根误差和绝对平方误差都随着窗口大小的增加而增加,并没有出现论文中的极小值。论文中数据是以半小时间隔,取窗口大小336(24*7*2),即选择一周的数据长度作为窗口大小,我的数据集是以一小时为间隔,所以取窗口大小为168(24*7),得到168个特征分量。


为了识别奇异值分解的有用特征分量,绘制了奥斯丁校园的对奇异值数的对数图。从下图可以看出,前20(1到20)的特征分量的贡献率大于0.01%,在序列中做出了主要贡献。因此,取前20个特征分量重构时间序列。

   冷负荷贡献率对数图                    

                       热负荷贡献率对数图

                                                 电负荷贡献率对数图

📚2 运行结果

2.1 冷负荷:


                                                    重组前后的冷负荷序列对比图

2.2 热负荷:

                                          重组前后的热负荷序列对比图

2.3 电负荷:


                                         重组前后的电负荷序列对比图

下面只展现电负荷的:

LSTM:

1690648254519.png

SSA-LSTM:

1690648276879.png



LSTM

SSA-LSTM

RMSE

0.525

0.215

MAPE

0.392

0.169

精准度

99.19%

99.66%


论文是对电负荷进行预测,仅仅利用历史负荷数据进行预测,变量单一,不能充分挖掘数据的高维特征,无法适用于综合能源系统的多元负荷。由于综合能源系统集成了不同种类的能源形式,存在不同类型能源的耦合,因此效仿电力系统采取单一模型预测的方式,很难达到准确和可靠的效果,如现有研究利用卷积神经网络等方法作为特征提取器从输入数据中提取隐含的更具代表的特征信息,然后进行预测,取得了很好的效果。


因此,在基于LSTM-奇异谱分析的电力负荷预测模型的基础上,考虑冷、热、电负荷历史负荷数据之间的相关性和各项影响因素,加上奇异谱分析得到的与冷、热、电负荷关联度高的特征分量一起作为输入训练模型。这样理论上可以更快的提取冷、热、电负荷的高维特征,提高预测的精度。


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]赵婧宇,池越,周亚同.基于SSA-LSTM模型的短期电力负荷预测[J].电工电能新技术,2022,41(06):71-79.

🌈4 Python代码、数据

相关文章
|
8天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
45 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
67 33
|
25天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
2月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
47 10
|
9月前
|
存储 Python
Python函数参数传递
Python函数参数传递
81 1
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
66 0
|
Python
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
深入理解 Python 中的函数参数传递机制
在 Python 中,对于函数的参数传递,有两种主要的方式:传值和传引用。事实上,Python 的参数传递是一种“传对象引用”的方式。接下来的文章我们将详细介绍 Python 的函数参数传递机制,这对理解 Python 编程语言的底层实现以及优化你的代码都非常有帮助。
|
Python
【100天精通python】Day10:python 基础_函数的创建和调用,参数传递,返回值,变量作用域以及匿名函数
【100天精通python】Day10:python 基础_函数的创建和调用,参数传递,返回值,变量作用域以及匿名函数
141 0
|
存储 Python
Python中函数参数传递方法*args, **kwargs,还有其他
本文将讨论Python的函数参数。我们将了解*args和**kwargs,/和*的都是什么,虽然这个问题是一个基本的python问题,但是在我们写代码时会经常遇到,比如timm中就大量使用了这样的参数传递方式。
315 0

热门文章

最新文章