Informer辅助笔记:data/dataloader.py

以WTH为例

import os
import numpy as np
import pandas as pdimport torch
from torch.utils.data import Dataset, DataLoader
# from sklearn.preprocessing import StandardScalerfrom utils.tools import StandardScaler
from utils.timefeatures import time_featuresimport warnings
warnings.filterwarnings('ignore')

1 WTH

1.1 数据

1.2 Dataset_Custom

1.2.1 __init__

class Dataset_Custom(Dataset):def __init__(self, root_path, flag='train', size=None, features='S', data_path='ETTh1.csv', target='OT', scale=True, inverse=False, timeenc=0, freq='h', cols=None):# size [seq_len, label_len, pred_len]# infoif size == None:self.seq_len = 24*4*4self.label_len = 24*4self.pred_len = 24*4else:self.seq_len = size[0]self.label_len = size[1]self.pred_len = size[2]#设置seq_len,label_len和pred_len# initassert flag in ['train', 'test', 'val']type_map = {'train':0, 'val':1, 'test':2}self.set_type = type_map[flag]self.features = featuresself.target = targetself.scale = scaleself.inverse = inverseself.timeenc = timeencself.freq = freqself.cols=colsself.root_path = root_pathself.data_path = data_pathself.__read_data__()

1.2.2 __read_data__

def __read_data__(self):self.scaler = StandardScaler()df_raw = pd.read_csv(os.path.join(self.root_path,self.data_path))if self.cols:cols=self.cols.copy()cols.remove(self.target)else:cols = list(df_raw.columns); cols.remove(self.target); cols.remove('date')df_raw = df_raw[['date']+cols+[self.target]]#数据被重新组织,使得日期列在前,然后是其他特征列,最后是目标特征列。#对于Weather,只有target=WetBulbCelsius和date,没有colsnum_train = int(len(df_raw)*0.7)num_test = int(len(df_raw)*0.2)num_vali = len(df_raw) - num_train - num_test#数据集被划分为70%训练集、20%测试集和剩余的作为验证集。border1s = [0, num_train-self.seq_len, len(df_raw)-num_test-self.seq_len]border2s = [num_train, num_train+num_vali, len(df_raw)]border1 = border1s[self.set_type]border2 = border2s[self.set_type]#根据是train还是test还是vali,计算这些集合的边界,即数据中的索引位置。if self.features=='M' or self.features=='MS':cols_data = df_raw.columns[1:]df_data = df_raw[cols_data]elif self.features=='S':df_data = df_raw[[self.target]]'''根据self.features的值选择特征。如果是'M'或'MS',选择除日期外的所有特征; [多变量预测多变量,多变量预测单变量]如果是'S',只选择目标特征。 [S:单变量预测单变量]'''if self.scale:train_data = df_data[border1s[0]:border2s[0]]self.scaler.fit(train_data.values)data = self.scaler.transform(df_data.values)else:data = df_data.valuesdf_stamp = df_raw[['date']][border1:border2]df_stamp['date'] = pd.to_datetime(df_stamp.date)data_stamp = time_features(df_stamp, timeenc=self.timeenc, freq=self.freq)'''从数据中提取时间戳,并转换成pandas的datetime对象。使用time_features函数来提取时间相关的特征。'''self.data_x = data[border1:border2]if self.inverse:self.data_y = df_data.values[border1:border2]else:self.data_y = data[border1:border2]self.data_stamp = data_stamp'''self.data_x: 用于模型训练的特征数据。self.data_y: 目标数据,如果self.inverse为真,则使用原始数据,否则使用标准化后的数据。(和data_x一样)self.data_stamp: 时间特征数据。'''

1.2.3 其他

'''
获取数据集的一个样本,其中index是样本的索引seq_x,seq_y:特征序列,目标序列
seq_x_mark,seq_y_mark:相对应的时间特征序列
'''def __getitem__(self, index):s_begin = indexs_end = s_begin + self.seq_lenr_begin = s_end - self.label_len r_end = r_begin + self.label_len + self.pred_lenseq_x = self.data_x[s_begin:s_end]if self.inverse:seq_y = np.concatenate([self.data_x[r_begin:r_begin+self.label_len], self.data_y[r_begin+self.label_len:r_end]], 0)else:seq_y = self.data_y[r_begin:r_end]seq_x_mark = self.data_stamp[s_begin:s_end]seq_y_mark = self.data_stamp[r_begin:r_end]return seq_x, seq_y, seq_x_mark, seq_y_mark'''
返回数据集中样本的总数
'''    def __len__(self):return len(self.data_x) - self.seq_len- self.pred_len + 1def inverse_transform(self, data):return self.scaler.inverse_transform(data)

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

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

相关文章

什么是光模块光模块看我这张就够啦!

1、什么是光模块 信号在光网络中传输时,必须进行光/电转换。光模块就是专门在光网络中完成光/电转换工作的部件。光模块的外观结构如图1所示,简单的来说,双绞线最大传输距离是100米,用的是电信号,那如果说传输距离超过…

骨传导能保护听力吗?使用骨传导有没有副作用?

先说结论,骨传导耳机是可以保护听力的,如果是正常的使用骨传导耳机,是不会有任何副作用的。 一、为什么说骨传导耳机能保护听力 1、佩戴方式更健康 由于骨传导耳机采用耳挂式佩戴,在使用的时候开放双耳,不会堵塞耳道…

搭建完善的绩效管理体系的重点解读

绩效管理最终目的就是实现企业的战略目标,如果没有战略目标作为基础,绩效管理体系就没有了依托,就无法发挥其应有的效用。在实际的企业绩效体系搭建过程中,战略目标的转化是整个体系的“骨架支持”部分,而针对绩效目标…

如何使用vs2022通过excel.exe生成VC、C++能够使用的头文件

我们在开发MFC、VC、C项目时,有时候需要操作excel文件的读写,我们一般常用方式是调用微软的excel驱动方式调用,但调用驱动前,我们需要生成我们C能够调用到的头文件,一般常用文件有: #include "CAppli…

GPT-4 惨遭削弱;拼多多市值一度超阿里;雷军回应个人向武汉大学捐款 13 亿元丨 RTE 开发者日报 Vol.96

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有…

大模型的实践应用10-大模型领域知识与参数高效微调(PEFT)技术的详解,并利用PEFT训练自己的大模型

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用10-大模型领域知识与参数高效微调(PEFT)技术的详解,并利用PEFT训练自己的大模型。大模型领域的参数高效微调技术(PEFT)是指通过对大规模神经网络模型进行高效率的参数微调,以提高模型性能和效率的一种方法。PEFT技术通…

卷轴模式:金融领域的新趋势

卷轴模式在金融领域逐渐崭露头角,成为一种新型的投资策略。这种模式基于完成任务或达成特定目标来获取积分,利用这些积分进行投资或获取现实物品。它不同于传统的资金盘,而是以一种更稳健的方式运作,避免了资金盘的风险。 一、卷轴…

智能优化算法应用:基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.帝国主义竞争算法4.实验参数设定5.算…

供应商关系管理软件:如何使用它来改善供应商关系?

从最基本的角度来说,企业需要供应商为其生产和销售的产品或服务提供原材料,或者为其提供资源和服务来经营自己的业务。 建立稳定而健康的供应商关系的最大优势之一,就是可以为企业带来更高的价值。企业对供应商了解越多,供应商对…

富必达API:一站式无代码开发集成电商平台、CRM和营销系统

一站式无代码开发的连接解决方案 电子商务、客户服务系统以及其它商业应用,是现代企业运营的重要部分。然而,将这些系统进行有效的整合往往需要复杂的API开发,这对很多企业来说是一个巨大的挑战。富必达API以其一站式的无代码开发解决方案&a…

android11-修改屏幕显示方向和触摸方向

方向定义 参数0表示12点钟方向显示 参数90表示3点钟方向显示 参数180表示6点钟方向显示 参数270表示9点钟方向显示修改显示方向 /android11/device/rockchip/rk356x/BoardConfig.mk diff --git a/device/rockchip/rk356x/BoardConfig.mk b/device/rockchip/rk356x/BoardConf…

Java小游戏 王者荣耀(简易版)

GameFrame类 所需图片: package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…

亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试

近日,在中国信通院“可信数据库”数据库迁移工具专项测试中,湖南亚信安慧科技有限公司(简称:亚信安慧科技)数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品&…

AI伪原创软件-AI伪原创工具下载

在当今数字化时代,创作者们在追求独特创意的同时,也面临着时间和灵感的双重挑战。AI伪原创技术应运而生,为创作者提供了一种快捷而便利的解决方案。本文将专心分享两款备受瞩目的AI伪原创工具,147SEO伪原创、百度文心一言伪原创&a…

赴日开发做什么?日本签证很难拿?

日本的IT行业历史比较悠久,业务以上层前端业务为主,如设计和构建软件。日本IT公司组织庞大,行业内部有着严格的分工和部署,工作会被细分化。分配给个人的工作量不会太大,难度也不会很高。 在日本IT公司就业&#xff0…

分油问题C++求解

原题 3个油桶&#xff0c;容量分别为&#xff08;大桶&#xff09;20&#xff0c;&#xff08;中桶&#xff09;9&#xff0c;&#xff08;小桶&#xff09;7&#xff0c;初始时大桶满油&#xff0c;如何操作可以分出17的油&#xff1f; 代码 #include<iostream> #inc…

批量登录和防关联:管理大量VK账号的有效方法

批量登录和管理大量VK账号是一项具有挑战性的任务&#xff0c;尤其是要防止账号之间产生关联。本文将介绍VK多账号的优势&#xff0c;并提供有效的方法来管理大量VK账号并防止关联。 一、VK是什么&#xff1f; VK&#xff08;全称Vkontakte&#xff09;是俄罗斯最大的社交媒体…

使用VScode通过内网穿透在公网环境下远程连接进行开发

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

TEMU灯具资质管控CE-ROHS(含铅邻苯)可以替代RSLreport (铅) +RSL report (邻)

TEMU各国灯具资质管控&#xff0c;UL CE-EMC/LVD RSL-SCCP PSE 灯具类产品UL认证/UL测试报告&#xff1a; 美国是一个对安全要求非常严格的国家&#xff0c;美国本土的所有电子产品生产企业早在很多年前就要求有相关安规检测。 针对这个情况&#xff0c;美国相关部门发布了专门…

能耗远程在线监测系统在工业节能提高效率

摘要&#xff1a;为保证企业实现节能减排目标&#xff0c;设计和使用远程在线监测系统势在必行。远程在线监测系统是基于传感器与网络技术的优势&#xff0c;在企业区域各个位置针对性安装传感器&#xff0c;对实时数据进行采集、编码传输到远程管理系统。远程管理系统对采集的…