TS2Vec 项目使用教程
项目介绍
TS2Vec 是一个通用的时间序列表示学习框架,旨在为时间序列数据提供一个强大的、通用的表示方法。该项目通过分层对比学习在增强的上下文视图上进行操作,从而为每个时间戳提供鲁棒的上下文表示。此外,TS2Vec 还能够通过简单的聚合操作获取时间序列中任意子序列的表示。
项目快速启动
环境配置
首先,确保你的环境满足以下要求:
- Python 3.8
- torch==1.8.1
- scipy==1.6.1
- numpy==1.19.2
- pandas==1.0.1
- scikit_learn==0.24.2
- statsmodels==0.12.2
- Bottleneck==1.3.2
你可以使用以下命令安装这些依赖:
pip install -r requirements.txt
训练模型
使用以下命令来训练和评估 TS2Vec 模型:
python train.py <dataset_name> <run_name> --loader <loader> --batch-size <batch_size> --repr-dims <repr_dims> --gpu <gpu> --eval
参数说明:
dataset_name
: 数据集名称run_name
: 用于保存模型输出和评估指标的文件夹名称loader
: 数据加载器,可以是UCR
,UEA
,forecast_csv
,forecast_csv_univar
,anomaly
, 或anomaly_coldstart
batch_size
: 批大小(默认值为 8)repr_dims
: 表示维度(默认值为 320)gpu
: 用于训练和推理的 GPU 编号
应用案例和最佳实践
时间序列预测
TS2Vec 可以用于时间序列预测任务,通过学习时间序列的表示,模型能够更好地捕捉时间序列中的模式和趋势。
异常检测
在异常检测任务中,TS2Vec 能够识别出时间序列中的异常点,通过对比学习方法,模型能够学习到正常模式的表示,从而识别出异常。
典型生态项目
PyTorch
TS2Vec 使用 PyTorch 作为深度学习框架,PyTorch 提供了强大的工具和库,支持高效的模型训练和推理。
Scikit-Learn
Scikit-Learn 提供了丰富的机器学习工具,TS2Vec 可以与 Scikit-Learn 结合使用,进行数据预处理和模型评估。
Pandas
Pandas 是一个强大的数据处理库,TS2Vec 使用 Pandas 进行数据加载和预处理,确保数据格式正确。
通过以上教程,你可以快速上手 TS2Vec 项目,并在实际应用中发挥其强大的时间序列表示学习能力。