Time Series Anomaly Detection Dataset Generator
收藏数据集概述:Time Series Anomaly Detection Dataset Generator
1. 数据集简介
这是一个用于时间序列异常检测任务的合成数据集生成器,支持生成单变量和多变量时间序列数据,并允许用户灵活配置异常模式。
2. 主要特性
- 单变量与多变量支持:可生成单维或多维时间序列数据
- 灵活的异常注入:控制数据集中异常样本的比例(0.0-1.0)
- 可定制的序列长度:支持固定长度或随机分布长度(100-10000)
- 丰富的元数据:每个样本包含时间序列和异常的详细属性信息
- 两种生成模式:基于属性的生成(推荐)和基于 synthetic.json 的生成
3. 参数配置
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
num_samples |
int | 1000 | 生成的样本数量 |
seq_len |
int, optional | None | 每个时间序列的长度,设为None时随机生成(100-10000) |
anomaly_sample_ratio |
float | 0.5 | 包含异常的样本比例(0.0-1.0) |
is_multivariate |
bool | False | 是否生成多变量时间序列 |
num_features |
int, optional | None | 多变量数据的特征数量 |
activate_function |
bool | False | 多变量生成中是否应用激活函数 |
metrics |
list, optional | None | 用于异常生成的具体指标 |
use_attribute_set |
bool | False | 使用ALL_ATTRIBUTE_SET进行生成(推荐) |
4. 输出格式
每个样本为字典结构,包含:
normal_time_series:无异常的时间序列 (numpy数组)time_series:注入异常后的时间序列 (numpy数组)labels:二进制标签,1表示异常,0表示正常 (numpy数组)attribute:时间序列的元数据(字典)
单变量属性结构
包含指标类型(metric)、异常描述列表(anomalies)、基础模式类型(pattern)等信息。
多变量属性结构
包含每个特征的属性列表(attribute_list)、特征数量(num_features)、内生异常特征标记(is_endogenous)、有向无环图结构(dag)等信息。
5. 使用示例
生成仅包含异常的样本
python dataset = generate_dataset(num_samples=500, seq_len=1000, anomaly_sample_ratio=1.0)
生成混合数据集(50%异常,50%正常)
python dataset = generate_dataset(num_samples=1000, anomaly_sample_ratio=0.5)
生成可变长度序列
python dataset = generate_dataset(num_samples=200, seq_len=None, anomaly_sample_ratio=0.8)
6. 项目结构
TSAD_dataset_gen/ ├── src/ │ ├── generate_dataset.py # 主数据集生成脚本 │ ├── ts_generator.py # 单变量时间序列生成器 │ └── ts_multi_generator.py # 多变量时间序列生成器 ├── data_generate/ │ └── samples/ # 数据集输出目录 └── README.md
7. 重要提示
- 推荐模式:建议使用
use_attribute_set=True以获得更灵活的生成效果 - 内存使用:长序列的大数据集可能消耗大量内存
- 生成时间:多变量生成(尤其是特征较多时)可能需要更长时间
- 异常保证:当
anomaly_sample_ratio=1.0时,生成器确保所有样本至少包含一个异常
8. 许可证
该项目以“按原样”提供,仅供研究和教育用途。




