TS2Vec数据预处理完全指南:支持UCR、UEA等6大时间序列数据集

TS2Vec数据预处理完全指南:支持UCR、UEA等6大时间序列数据集

【免费下载链接】ts2vec A universal time series representation learning framework 【免费下载链接】ts2vec 项目地址: https://gitcode.com/gh_mirrors/ts/ts2vec

想要掌握TS2Vec时间序列表示学习框架?数据预处理是关键第一步!TS2Vec作为一个通用时间序列表示学习框架,支持6大主流时间序列数据集:UCR、UEA、ETT、Electricity、Yahoo和KPI。本文将为你提供完整的TS2Vec数据预处理指南,从数据集下载到预处理脚本使用,一步步教你如何准备数据,让TS2Vec发挥最大效能。🚀

📊 6大时间序列数据集概览

TS2Vec支持以下6种主流时间序列数据集,涵盖分类、预测和异常检测三大任务:

数据集类型数据集名称任务类型数据格式预处理脚本
分类数据集UCR (128个)时间序列分类.tsv格式无需预处理
分类数据集UEA (30个)多元时间序列分类.arff格式无需预处理
预测数据集ETT (3个)电力负荷预测.csv格式无需预处理
预测数据集Electricity电力消耗预测.txt原始数据datasets/preprocess_electricity.py
异常检测YahooWeb服务异常检测.csv格式datasets/preprocess_yahoo.py
异常检测KPI系统监控异常检测.csv.hdf格式datasets/preprocess_kpi.py

📥 数据集下载与准备

1. UCR时间序列分类数据集

UCR数据集包含128个单变量时间序列分类数据集,是时间序列分析领域的基准数据集。

下载地址UCR数据集官网

目录结构要求

datasets/UCR/
├── ECG200/
│   ├── ECG200_TRAIN.tsv
│   └── ECG200_TEST.tsv
├── FordA/
│   ├── FordA_TRAIN.tsv
│   └── FordA_TEST.tsv
└── ... (其他126个数据集)

2. UEA多元时间序列数据集

UEA数据集包含30个多元时间序列分类数据集,支持更复杂的时间序列分析。

下载地址UEA数据集官网

目录结构要求

datasets/UEA/
├── ArticularyWordRecognition/
│   ├── ArticularyWordRecognition_TRAIN.arff
│   └── ArticularyWordRecognition_TEST.arff
├── BasicMotions/
│   ├── BasicMotions_TRAIN.arff
│   └── BasicMotions_TEST.arff
└── ... (其他28个数据集)

3. ETT电力负荷数据集

ETT数据集包含3个电力变压器温度数据集,用于时间序列预测任务。

下载地址GitHub - ETDataset

文件放置位置

  • datasets/ETTh1.csv
  • datasets/ETTh2.csv
  • datasets/ETTm1.csv

🔧 数据预处理脚本详解

Electricity数据集预处理

Electricity数据集需要从原始TXT格式转换为CSV格式:

python datasets/preprocess_electricity.py -i LD2011_2014.txt -o electricity.csv

预处理步骤

  1. 读取原始数据(分号分隔,逗号作为小数点)
  2. 按1小时重采样
  3. 过滤掉缺失值的实例
  4. 保留2012年之后的数据
  5. 保存为CSV格式

Yahoo异常检测数据集预处理

Yahoo数据集包含A1-A4四个基准测试集:

python datasets/preprocess_yahoo.py --path ydata-labeled-time-series-anomalies-v1_0 -o yahoo.pkl

关键处理逻辑

  • 合并A1、A2、A3、A4四个子数据集
  • 使用ADF检验确保时间序列平稳性
  • 数据标准化处理
  • 保存为Pickle格式便于快速加载

KPI异常检测数据集预处理

KPI数据集需要处理训练和测试两个文件:

python datasets/preprocess_kpi.py --train-file phase2_train.csv --test-file phase2_ground_truth.hdf -o kpi.pkl

处理流程

  1. 分别加载训练集和测试集
  2. 按KPI ID分组处理
  3. 标准化每个KPI序列
  4. 确保时间序列平稳性
  5. 合并所有数据并保存

🚀 快速开始:数据加载示例

TS2Vec通过datautils.py模块提供了统一的数据加载接口:

分类数据集加载

from ts2vec import TS2Vec
import datautils

# 加载UCR数据集
train_data, train_labels, test_data, test_labels = datautils.load_UCR('ECG200')

# 加载UEA数据集  
train_data, train_labels, test_data, test_labels = datautils.load_UEA('ArticularyWordRecognition')

预测数据集加载

# 加载ETT数据集进行预测
data, train_slice, valid_slice, test_slice, scaler, pred_lens, n_covariate_cols = datautils.load_forecast_csv('ETTh1')

异常检测数据集加载

# 加载Yahoo异常检测数据集
all_train_data, all_train_labels, all_train_timestamps, all_test_data, all_test_labels, all_test_timestamps, delay = datautils.load_anomaly('yahoo')

⚙️ 训练时的数据加载器配置

在训练TS2Vec模型时,需要根据数据集类型选择合适的加载器:

数据集类型加载器参数示例命令
UCR分类数据集--loader UCRpython train.py ECG200 run1 --loader UCR --eval
UEA分类数据集--loader UEApython train.py ArticularyWordRecognition run1 --loader UEA --eval
预测数据集(多变量)--loader forecast_csvpython train.py ETTh1 run1 --loader forecast_csv --eval
预测数据集(单变量)--loader forecast_csv_univarpython train.py ETTh1 run1 --loader forecast_csv_univar --eval
异常检测数据集--loader anomalypython train.py yahoo run1 --loader anomaly --eval
冷启动异常检测--loader anomaly_coldstartpython train.py kpi run1 --loader anomaly_coldstart --eval

💡 数据预处理最佳实践

1. 数据标准化策略

TS2Vec内置了多种标准化策略:

  • UCR数据集:对非标准化数据集进行全局标准化
  • UEA数据集:使用StandardScaler进行特征级标准化
  • 预测数据集:基于训练集进行标准化,保持时间特征一致性
  • 异常检测数据集:基于训练集进行标准化,确保异常检测准确性

2. 时间特征提取

对于预测任务,TS2Vec自动提取时间特征:

  • 分钟、小时、星期几
  • 日期、一年中的第几天
  • 月份、一年中的第几周

3. 数据分割策略

  • 分类任务:使用官方提供的训练/测试分割
  • 预测任务:60%训练,20%验证,20%测试
  • 异常检测:前50%作为训练,后50%作为测试

🛠️ 常见问题与解决方案

Q1: 数据集下载后无法加载?

检查点

  • 确认数据集路径正确:datasets/UCR/<dataset_name>/<dataset_name>_*.tsv
  • 检查文件权限和格式
  • 确认数据集名称与代码中的名称一致

Q2: 预处理脚本运行失败?

解决方法

  1. 检查Python依赖:pip install -r requirements.txt
  2. 确认输入文件路径正确
  3. 检查文件格式是否符合要求

Q3: 内存不足如何处理?

优化建议

  • 减少batch-size参数(默认8)
  • 使用--max-train-length限制序列长度
  • 分批处理大型数据集

📈 性能优化技巧

1. 批量大小调整

  • 小数据集:使用默认batch-size=8
  • 大数据集:适当增大batch-size(16-32)
  • GPU内存不足:减小batch-size

2. 表示维度选择

  • 默认--repr-dims 320适用于大多数任务
  • 简单任务:可减少到128或256
  • 复杂任务:可增加到512或640

3. 训练长度限制

  • 使用--max-train-length处理长序列
  • 默认3000,可根据实际情况调整
  • 过长序列会自动裁剪为多个子序列

🎯 总结

TS2Vec的数据预处理流程设计得非常完善,支持6大主流时间序列数据集,覆盖分类、预测和异常检测三大任务。通过本文的指南,你可以:

  1. ✅ 正确下载和准备所有6种数据集
  2. ✅ 使用预处理脚本处理原始数据
  3. ✅ 选择合适的加载器进行模型训练
  4. ✅ 优化数据预处理参数提升模型性能

记住,良好的数据预处理是成功应用TS2Vec时间序列表示学习框架的第一步!现在就开始准备你的时间序列数据,体验TS2Vec的强大表示学习能力吧!✨

提示:更多技术细节请参考datautils.py和各个预处理脚本的源码实现。

【免费下载链接】ts2vec A universal time series representation learning framework 【免费下载链接】ts2vec 项目地址: https://gitcode.com/gh_mirrors/ts/ts2vec

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

抵扣说明:

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

余额充值