Python实现应用最小二乘法融合SVM-LSTM回归模型电力负荷预测项目实战

embedded/2024/12/23 5:08:56/

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。

1.项目背景

随着全球能源需求的不断增长,电力系统的稳定性和效率变得至关重要。准确的电力负荷预测不仅有助于优化电力调度和分配,还能减少能源浪费,降低运营成本。传统的负荷预测方法(如时间序列分析、回归模型等)虽然在某些场景下表现良好,但在处理复杂的非线性关系和长期依赖时存在局限性。

为了提高预测精度,本项目提出了一种结合 最小二乘法(Least Squares Method, LLS)、支持向量机(Support Vector Machine, SVM) 和 长短期记忆网络(Long Short-Term Memory, LSTM) 的混合回归模型,用于电力负荷预测。该模型充分利用了 SVM 在处理高维数据和非线性问题上的优势,以及 LSTM 在捕捉时间序列中的长期依赖关系的能力。通过最小二乘法对这两种模型进行融合,进一步提升了预测的准确性和稳定性。

通过结合最小二乘法、SVM 和 LSTM,本项目旨在构建一个高效、准确的电力负荷预测模型,帮助电力公司优化调度和分配,提升电网的稳定性和效率。该项目不仅展示了如何将机器学习和深度学习技术应用于实际问题,还为未来的智能能源管理系统提供了有力的支持。 

本项目通过Python实现应用最小二乘法融合SVM-LSTM回归模型电力负荷预测项目实战。    

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

编号 

变量名称

描述

1

Date

记录数据的日期

2

Time

记录数据的时间

3

Global_active_power

家庭总的有功功率(实际消耗的电能)单位:kW

4

Global_reactive_power

家庭总的无功功率(未转化为有用工作的电能部分)单位:kVar

5

Voltage

家庭电路中的电压值 单位:V

6

Global_intensity

家庭电路中的总电流强度 单位:A

7

Sub_metering_1

第一个子系统的电能消耗(如厨房电器)单位:Wh

8

Sub_metering_2

第二个子系统的电能消耗(如洗衣房电器)单位:Wh

9

Sub_metering_3

第三个子系统的电能消耗(如空调和热水器) 单位:Wh

数据详情如下(部分展示): 

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

关键代码:

3.2数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有7个变量,数据中无缺失值,共10172条数据。

关键代码:  

3.3数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

关键代码如下:  

4.探索性数据分析

4.1 Global_active_power变量分布直方图 

用Matplotlib工具的hist()方法绘制直方图:

4.2 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。 

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

5.2 数据集拆分

把数据集划分为80%训练集、20%测试集进行划分,关键代码如下:  

6.构建SVM回归模型

6.1 构建模型

编号

模型名称

参数

1

SVM回归模型     

kernel='rbf'  默认参数

2

gamma='scale' 默认参数

7.构建LSTM回归模型           

7.1 构建模型 

编号

模型名称

参数

1

LSTM神经网络回归模型     

units=96

2

epochs=60 

7.2 模型摘要信息

LSTM神经网络回归模型:

7.3 模型网络结构

7.4 模型训练集测试集损失曲线图

  

8.构建SVM-LSTM融合回归模型           

8.1 构建模型

结合 最小二乘法(Least Squares Method, LLS)、支持向量机(Support Vector Machine, SVM) 和 长短期记忆网络(Long Short-Term Memory, LSTM) 的混合回归模型。

关键代码如下:

输出结果如下:

9.模型评估

9.1评估指标及结果  

评估指标主要包括R方、均方误差、解释性方差、绝对误差等等。

模型名称

指标名称

指标值

测试集

SVM回归模型     

R方

0.9957

均方误差

0.0079

解释方差分

0.9962

绝对误差

0.068

从上表可以看出,R方分值为0.9947,说明模型效果良好。   

关键代码如下:      

模型名称

指标名称

指标值

测试集

LSTM回归模型     

R方

0.9979

均方误差

0.0038

解释方差分

0.9981

绝对误差

0.04

从上表可以看出,R方分值为0.9977,说明模型效果比较好。    

关键代码如下:       

模型名称

指标名称

指标值

测试集

SVM-LSTM融合回归模型     

R方

0.9981

均方误差

0.0036

解释方差分

0.9981

绝对误差

0.0372

从上表可以看出,R方分值为0.9977,说明模型效果比较好。    

关键代码如下:  

9.2 真实值与预测值对比图  

SVM回归模型:

从上图可以看出真实值和预测值波动基本一致,模型效果良好。  

LSTM回归模型

从上图可以看出真实值和预测值波动基本一致,模型效果良好。

SVM-LSTM融合回归模型:

从上图可以看出真实值和预测值波动基本一致,模型效果较好。

10.结论与展望

综上所述,本文采用了SVM算法、LSTM算法和SVM-LSTM融合算法来构建回归模型,最终证明了SVM-LSTM融合模型效果较好。此模型可用于日常产品的预测。 


http://www.ppmy.cn/embedded/147983.html

相关文章

融合机器学习算法:用VotingClassifier实现分类多模型的投票集成

背景 VotingClassifier是一种集成学习方法,它将多个不同的机器学习模型组合起来,通过投票的方式对分类任务做出决策,从而提高整体模型的预测性能和鲁棒性 VotingClassifier的核心机制 VotingClassifier提供两种主要的投票策略硬投票和软投…

设计模式学习[13]---抽象工厂模式+简单工厂+工厂方法模式回顾

文章目录 前言1.原理阐述1.1 说明11.2 说明2 2.举例 总结 前言 之前写过一些工厂的相关内容,详情见这两篇:简单工厂与工厂方法 这篇博客主要讲抽象工厂模式。 1.原理阐述 1.1 说明1 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的…

Neo4j插入数据逐级提升速度4倍又4倍

语雀版:https://www.yuque.com/xw76/back/dtukgqfkfwg1d6yo 目录 背景介绍初始方案Node()创建事务批量提交记录Node是否存在生成Cypher语句执行数据库参数优化切换成85k个三元组测试建索引(很显著!!!)MATCH…

Java 实现 AES 加密和解密

目录 前言 一、AES 加密算法简介 1.诞生背景 2.简介 二、AES 加密算法的核心原理 1.分组密码模式 2.密钥扩展 3.加密轮次与操作 三、AES 加密算法的优势 1.高效性 2.安全性 3.广泛的适用性 四、AES加密模式的几种方式 1.电子密码本模式(ECB&#xff0c…

【嵌入式开发笔记】OpenOCD到嵌入式调试

最近在把玩一块Risc-V的开发板,使用开发板调试时,需要用到专门的下载器和OpenOCD进行调试。 为了连接这个板子,费了九牛二虎之力。 这里简单记录一下自己的折腾经过吧。 0x00 环境准备 0x0001 调试背景 系统:Virtual Box Ub…

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包(BSP&#xf…

Windows开机黑屏|Windows开机黑屏只有鼠标|Windows开机不运行explorer

输入regedit打开注册表,进入以下路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 左键双击右侧的 Shell 查看是否设置为 Explorer.exe

MONI后台管理系统-swagger3(springdoc-openapi)集成

springdoc-openapi Java 库有助于使用 Spring Boot 项目自动生成 API 文档。springdoc-openapi 通过在运行时检查应用程序来根据 Spring 配置、类结构和各种注释推断 API 语义。 该库会自动生成 JSON/YAML 和 HTML 格式的页面文档。生成的文档可以使用swagger-api注释进行补充。…