快速实现时间序列数据归一化

快速实现时间序列数据归一化

背景描述

50M的时间序列数据,做归一化,做了一天一夜,我的笔记本CPU还可以,8G内存。网上找了一些,基本方法和我的一致,要么是for循环,要么,写个函数,大致也要用for循环。有比较高明一点的,只是事先把最大最小值先算出来。提升了一小丢丢速度,本质上没啥子变化。

Numpy库的特点

就是并行,为啥pandas读取完的数据还要使用for循环来做呢?至少自己怀疑Python没学好。不认头,于是琢磨出下面方法,5分钟搞定数据归一化。闲话少说,直接上代码。

借助Pandas快速实现归一化

首先导入数据
数据下载链接:
https://download.csdn.net/download/weixin_45341568/12736595

导入数据包

import numpy as np
import pandas as pd
import datetime

读取数据,并对数据做处理,将日期和时间作为多重索引

ts_x = pd.read_csv('./data/original_data/1min.csv',parse_dates=[0,1],usecols=[0,1,3])
ts_x.time = ts_x.time.apply(lambda x: datetime.datetime.strftime(x, '%H:%M:%S'))
ts_x.set_index(['date', 'time'], inplace=True)

在这里插入图片描述

对数据进行堆叠操作,并删除多余列索引。
多余的列索引是由于堆叠操作产生

ts_x = ts_x.unstack()
ts_x.columns = ts_x.columns.droplevel()

在这里插入图片描述
然后用下面一行代码就可以做归一化操作了,这里做个提示,pandas中的df.min()这个函数默认是对每列求最小值,通过设置参数,可以变更为对每行求最小值。

df_norm = ts_x.apply(lambda x: (x-ts_x.min(1))/(ts_x.max(1)-ts_x.min(1)))

在这里插入图片描述
就这么简单,就完成了数据的归一化操作。总共用时不超过5分钟。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 使用MATLAB编写用于时间序列预测的Transformer代码可以通过使用MATLAB的深度学习工具箱来实现。该工具箱提供了用于构建、训练和部署Transformer模型的功能,可以帮助你快速完成预测任务。 ### 回答2: 使用MATLAB编写Transformer时间序列预测代码需要以下步骤: 1. 数据准备:首先,需要准备训练数据集和测试数据集。训练数据集应包含时间序列的历史数据,例如过去几个月或几年的数据。测试数据集应该包含最后一段时间序列,用于验证模型的预测准确性。 2. 数据预处理:对于时间序列预测,常见的预处理步骤包括平滑(去除异常值或噪声)、归一化和分解等。可以使用MATLAB中的函数进行数据平滑和归一化操作。 3. 搭建Transformer模型:使用MATLAB的深度学习工具箱,在MATLAB环境中创建Transformer模型。Transformer模型是一种用于序列到序列(seq2seq)问题的强大模型。使用MATLAB的深度学习工具箱中的函数可以方便地创建并配置Transformer模型。 4. 模型训练:使用准备好的训练数据集,使用MATLAB的深度学习工具箱中的函数对Transformer模型进行训练。训练过程中可以通过监控损失函数变化来评估模型的训练效果,并根据需要进行调整。 5. 模型预测:使用训练好的Transformer模型对测试数据集进行预测。预测结果可以通过MATLAB绘图函数进行可视化展示。 6. 模型评估:评估模型的预测准确性和性能。可以使用常见的评估指标,例如均方根误差(RMSE)和平均绝对百分比误差(MAPE),来衡量模型的预测能力。 7. 结果分析:根据模型预测结果和评估指标,分析模型的性能和预测能力。如果需要改进模型性能,可以尝试调整模型的超参数或进行更多的数据预处理操作。 最后,通过以上步骤,就可以使用MATLAB编写Transformer时间序列预测代码,并得到相应的预测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对弈二级市场

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值