电力变压器数据集介绍和预处理

1 电力变压器数据集介绍

1.1 数据背景

在这个Github仓库中,作者提供了几个可以用于长序列时间序列问题的数据集。所有数据集都经过了预处理,并存储为.csv文件。数据集的范围从2016/07到2018/07。

  • ETT-small: 含有2个电力变压器(来自2个站点)的数据,包括负载、油温。

  • ETT-large:  含有39个电力变压器(来自39个站点)的数据,包括负载、油温。

  •  ETT-full:  含有69个电力变压器(来自39个站点)的数据,包括负载、油温、位置、气候、需求。

如果您使用此数据集,请引用Informer@AAAI2021最佳论文奖[论文]

1.2 为什么引入 油温数据 到该数据集中?

“电力分配问是电网根据顺序变化的需求管理电力分配到不同用户区域。但要预测特定用户区域的未来需求是困难的,因为它随工作日、假日、季节、天气、温度等的不同因素变化而变化。现有预测方法不能适用于长期真实世界数据的高精度长期预测,并且任何错误的预测都可能产生严重的后果。因此当前没有一种有效的方法来预测未来的用电量,管理人员就不得不根据经验值做出决策,而经验值的阈值通常远高于实际需求。保守的策略导致不必要的电力和设备折旧浪费。值得注意的是,变压器的油温可以有效反映电力变压器的工况。我们提出最有效的策略之一,是预测变压器的油温同时设法避免不必要的浪费。为了解决这个问题,我们的团队与北京国网富达科技发展公司建立了一个平台并收集了2年的数据。我们用它来预测电力变压器的油温并研究电力变压器极限负载能力。”

1.3 ETT-small:

我们提供了两年的数据,每个数据点每15分钟记录一次(用 m 标记),它们分别来自中国同一个省的两个不同地区,分别名为ETT-small-m1和ETT-small-m2。每个数据集包含2年 * 365天 * 24小时 * 4 = 70,080数据点。 此外,我们还提供一个小时级别粒度的数据集变体使用(用 h 标记),即ETT-small-h1和ETT-small-h2。 每个数据点均包含8维特征,包括数据点的记录日期、预测值“油温”以及6个不同类型的外部负载特征。

    图 1."油温"特征在ETT-small数据集中的总览

图 2.全部变量的自相关图展示

数据集是使用.csv形式进行存储的,在图3中我们给出了一个数据的样例。其中第一行(8列)是数据头,包括了 “HUFL”, “HULL”, “MUFL”, “MULL”, “LUFL”, “LULL” 和 “OT”,每一列的详细意义展示在表1中。

图 3. ETT 数据样例

2 基于Python的数据集预处理

2.1 数据可视化

第一步,查看数据形状

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc("font", family='Microsoft YaHei')# 读取数据
original_data = pd.read_csv('ETTh2.csv')
print(original_data.shape)
original_data.head()

第二步,数据可视化

# 取油温数据
OTddata = original_data['OT'].tolist()
OTddata = np.array(OTddata) # 转换为numpy# 可视化
plt.figure(figsize=(15,5), dpi=100)
plt.grid(True)
plt.plot(OTddata, color='green')
plt.show()

2.2 数据集预处理

第一步,先划分数据集,我们按照8:2划分训练集和测试集,划分比例不同,也会对后续的模型训练推理效果有影响,比如对电池寿命的预测中,明显训练集的数据量划分越多,模型拟合效果越好。

第二步,滑动窗口介绍

在时间序列预测问题中,滑动窗口是一种常用的数据处理方法,用于将时间序列数据转换为模型的输入特征和输出标签。滑动窗口的基本思想是以固定的时间窗口长度对时间序列进行切片,每次滑动一定的步长,从而生成一系列的子序列。这些子序列可以作为模型的输入特征,同时可以对应相同长度的下一个时间步的数据作为输出标签。这样就可以将时间序列数据转换为监督学习问题的数据集,用于训练和测试预测模型。

具体来说,对于一个时间序列 [x1, x2, x3, ..., xn],滑动窗口的过程如下:

1. 选择固定长度的时间窗口,比如长度为w。

2. 从序列的起始位置开始,取前w个数据作为输入特征,同时取第w+1个数据作为输出标签,形成第一个样本。

3. 然后向后滑动一个固定的步长,取第2到w+1个数据作为输入特征,同时取第w+2个数据作为输出标签,形成第二个样本,依此类推,直到序列末尾。

比如序列长为20,滑动窗口设置为4

训练集,滑动:

构造训练集数据和对应标签:

构造测试集数据和对应标签:

通过滑动窗口的处理,原始的时间序列数据被转换为一系列的样本,每个样本包括了固定长度的输入特征和对应的输出标签,用于模型的训练和测试。

滑动窗口技术可以帮助模型捕捉时间序列数据的局部模式和趋势,提高模型对时间序列的预测能力。

第三步,代码实现

import numpy as np
# 生成示例时间序列数据
time_series = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# 定义滑动窗口大小
window_size = 3
# 使用滑动窗口处理时间序列数据
def data_window_maker(time_series, window_size):# 用来存放输入特征data_x = []# 用来存放输出标签data_y = []# 构建训练集和对应标签for i in range(len(time_series) - window_size):data_x.append(time_series[i:i+window_size])  # 取前window_size个数据作为输入特征data_y.append(time_series[i+window_size])  # 取第window_size+1个数据作为输出标签return data_x, data_yx, y = data_window_maker(time_series, window_size)
print("输出标签y:", y)
x

选择合适的 window_size 对于时间序列数据的滑动窗口处理非常关键。window_size 的大小直接影响着模型对时间序列数据的理解和预测能力。下面是一些关于选择 window_size 的决策因素:

  • 上下文长度:window_size 应该足够长,能够捕获时间序列数据中的重要上下文信息,以便模型能够学习到时间序列数据的长期依赖关系。

  • 数据周期性:如果时间序列数据具有明显的周期性,window_size 最好能够覆盖一个完整的周期,这样可以帮助模型更好地理解周期性特征。

  • 数据频率:如果时间序列数据的采样频率很高,那么可能需要选择较小的 window_size,以便更好地捕捉时间序列数据的变化。

  • 数据长度:如果时间序列数据比较长,可以适当增大 window_size,以提高模型对整体趋势的理解。

  • 训练样本数量:选择合适的 window_size 可以确保生成足够数量的训练样本,以便模型能够充分学习时间序列数据的模式。

一般来说,选择合适的 window_size 需要结合具体的时间序列数据特点和预测任务需求来进行调整。通常情况下,可以通过尝试不同的 window_size 并进行交叉验证来确定最佳的参数值。也可阅读相关领域的论文,参考论文中的设定数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/601211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营Day14|二叉树理论基础和递归遍历

代码随想录卡哥视频 理论基础 需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义 文章讲解:代码随想录 递归遍历 (必须掌握) 二叉树的三种递归遍历掌握其规律后,其实很简单 题目链接/文章讲解/…

从尾到头打印链表

😀前言 链表问题一直是我在算法学习过程中经常遇到的挑战之一。其中,从尾到头打印链表的问题尤其引起了我的兴趣。这个问题看似简单,实际上涉及到了链表的遍历和逆序输出,需要我们灵活运用数据结构和算法知识来解决。在解决这个问…

调整雷达图

首先是具体对于雷达图的要求 相应的要求难点主要集中于 一 这个 标签的大小的调整通常不进行调整他会按照自定义的格式进行调整,但按要求来说的话是不符合的这是需要注意到的一点 需要在legend中设置下面参数进行调整 itemWidth : 17,itemHeight: 15 二 y轴上的刻…

Github上传大文件(>25MB)教程

0.在github中创建新的项目(已创建可忽略这一步) 如上图所示,点击New repository 进入如下页面: 1.下载Git LFS 下载git 2.打开gitbash 3.上传文件,代码如下: cd upload #进入名为upload的文件夹,提前…

计算机网络针对交换机的配置

实验 目的 交换机的基本配置,交换机VLAN配置 实验条件 Windows,Cisco packet tracer 实验 内容 交换机的基本配置,交换机VLAN配置 实验 过程 一、交换机的基本配置 进入特权模式 Switch>enable 进入配置模式 Switch#configure ter…

亚马逊美国站加热垫标准UL130测试要求

加热垫上架亚马逊需要由ISO 17025 认可的实验室出具的UL130检测报告。亚马逊要求销售的电子产品,必须经过检测符合标准才可以上架。 UL130的测试项目: 1. 电气性能测试:测试坐垫加热器的电流、电压、功率等参数,以评估其安全性能…

Activity——idea(2020以后)配置actiBPM

文章目录 前言jar下载idea 安装本地扩展插件 前言 2020及之后版本的idea中,未维护对应的actiBPM扩展插件。如果需要安装该插件,则需要使用本地导入 jar的方式。 jar下载 访问官方网站,搜索对应的actiBPM扩展插件。 https://plugins.jetbra…

基于R语言lavaan结构方程模型(SEM)技术教程

原文链接:基于R语言lavaan结构方程模型(SEM)技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…

面板数据回归模型(二)房价的影响因素分析

1.数据来源 本文选择我国出一线城市房价均值、新一线城市房价均值、二线城市房价均值、货币供应量和利率。选取2002-2018年的数据,共17组数据,由于数据的自然对数变换不改变原有的协整关系,并能使其趋势线性化,消除时间序列中存在的异方差现象,所以对所有数据取其自然对数…

【Sentinel的限流使用】⭐️SpringBoot整合Sentinel实现Api的限流

目录 前言 一、Sentinel下载 二、SpringBoot 整合 Sentinel 三、流控规则 章末 前言 小伙伴们大家好,上次使用OpenFeign时用到了 Hystrix实现熔断和限流的功能,但是发现该工具已经停止维护了,于是想到了Spring Cloud Alibaba开发的Sentin…

2.基础乐理-唱名的来历,简谱的构造

前置内容:1.唱名与记住唱名的方法 唱名的来历: 很久很久以前(公元前)各个文明开始诞生和慢慢发展,随着文明的发展,各个文明都开始出现自己的音乐,根据考古学家的发现在 公元前1800年&#xff…

深度学习学习日记4.8(下午)

1.softmax 函数的得出的结果是样本被预测到每个类别的概率,所有类别的概率相加总和等于1。使用 softmax 进行数据归一化,将数字转换成概率。 2.熵,不确定性,越低越好 3.KL 散度交叉熵-信息熵 预测越准,交叉熵越小&am…