基于麻雀搜索算法(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代码、数据

相关文章
|
6天前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
25 11
|
21天前
|
缓存 监控 测试技术
Python中的装饰器:功能扩展与代码复用的利器###
本文深入探讨了Python中装饰器的概念、实现机制及其在实际开发中的应用价值。通过生动的实例和详尽的解释,文章展示了装饰器如何增强函数功能、提升代码可读性和维护性,并鼓励读者在项目中灵活运用这一强大的语言特性。 ###
|
20天前
|
Python
探索Python中的装饰器:简化代码,提升效率
【10月更文挑战第39天】在编程的世界中,我们总是在寻找使代码更简洁、更高效的方法。Python的装饰器提供了一种强大的工具,能够让我们做到这一点。本文将深入探讨装饰器的基本概念,展示如何通过它们来增强函数的功能,同时保持代码的整洁性。我们将从基础开始,逐步深入到装饰器的高级用法,让你了解如何利用这一特性来优化你的Python代码。准备好让你的代码变得更加优雅和强大了吗?让我们开始吧!
22 1
|
7月前
|
存储 Python
Python函数参数传递
Python函数参数传递
66 1
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
63 0
|
Python
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
python之函数的参数传递(引用传递和值传递),查看变量的内存地址的方法
深入理解 Python 中的函数参数传递机制
在 Python 中,对于函数的参数传递,有两种主要的方式:传值和传引用。事实上,Python 的参数传递是一种“传对象引用”的方式。接下来的文章我们将详细介绍 Python 的函数参数传递机制,这对理解 Python 编程语言的底层实现以及优化你的代码都非常有帮助。
|
Python
【100天精通python】Day10:python 基础_函数的创建和调用,参数传递,返回值,变量作用域以及匿名函数
【100天精通python】Day10:python 基础_函数的创建和调用,参数传递,返回值,变量作用域以及匿名函数
126 0
|
存储 Python
Python中函数参数传递方法*args, **kwargs,还有其他
本文将讨论Python的函数参数。我们将了解*args和**kwargs,/和*的都是什么,虽然这个问题是一个基本的python问题,但是在我们写代码时会经常遇到,比如timm中就大量使用了这样的参数传递方式。
291 0
|
Python
Python 关于Python函数参数传递方式的一点探索
Python 关于Python函数参数传递方式的一点探索
87 0

热门文章

最新文章