StreamSpot数据集使用指南:边缘流网络异常检测数据详解
StreamSpot数据集是一个专门用于边缘流网络异常检测的实验数据集合,为网络安全研究者和数据分析师提供高质量的预处理数据支持。本指南将详细介绍该数据集的结构、格式和使用方法。
项目结构与核心文件
StreamSpot数据集采用简洁的文件组织方式,便于快速定位和使用:
sbustreamspot-data/
├── README.md # 项目核心说明文档
├── LICENSE # Apache-2.0开源协议
├── preprocess.py # 数据预处理核心脚本
└── all.tar.gz # 完整场景数据集压缩包
数据集格式说明
数据集采用制表符分隔的文件格式,每行代表一条边记录,具体格式如下:
source-id source-type destination-id destination-type edge-type graph-id
其中各字段含义:
- source-id:源节点ID
- source-type:源节点类型
- destination-id:目标节点ID
- destination-type:目标节点类型
- edge-type:边类型
- graph-id:图ID
场景分类与图ID映射
数据集包含6种不同的网络场景,每种场景对应100个图ID:
| 场景类型 | 图ID范围 | 描述 |
|---|---|---|
| YouTube | 0-99 | 视频流媒体场景 |
| GMail | 100-199 | 邮件服务场景 |
| VGame | 200-299 | 在线游戏场景 |
| 下载攻击 | 300-399 | 恶意下载攻击场景 |
| Download | 400-499 | 正常下载场景 |
| CNN | 500-599 | 新闻网站场景 |
数据预处理流程
preprocess.py脚本是数据处理的核心,执行以下关键步骤:
- 类型映射:将节点和边类型映射为单个字符标识符
- 边合并:合并相同节点对之间的连续文件读取边
- 节点ID调整:将节点ID递增1(-1变为0)
- 时间戳移除:移除时间戳字段,保留按时间排序的边数据
数据子集提取
从完整的ALL数据集可以派生出两个重要的子集:
- YDC子集:包含YouTube、Download、CNN场景
- GFC子集:包含GMail、VGame、CNN场景
使用方法
基本预处理
要运行数据预处理脚本,需要使用以下命令:
python preprocess.py <原始边文件>
数据获取
数据集以压缩包形式提供,解压后即可获得完整的边数据:
tar -xzf all.tar.gz
数据特点与优势
StreamSpot数据集具有以下显著特点:
- 场景多样性:涵盖正常和恶意网络行为的多种场景
- 格式统一:标准化数据格式便于跨研究比较
- 预处理完善:提供完整的预处理脚本和数据转换工具
- 研究价值高:专门为网络异常检测研究设计
应用场景
该数据集主要适用于以下研究领域:
- 网络异常检测算法开发
- 机器学习模型训练与验证
- 网络安全态势感知
- 边缘计算安全研究
技术细节
类型映射表
预处理脚本使用固定的映射表将节点和边类型转换为字符标识符:
- 进程:a
- 线程:b
- 文件:c
- 网络连接:i-o
- 文件操作:u-v-G
数据质量保证
通过以下措施确保数据质量:
- 重复边检测和合并
- 节点ID规范化
- 时间序列保持
注意事项
在使用StreamSpot数据集时需要注意:
- 确保原始数据文件路径正确
- 检查Python环境兼容性
- 了解数据预处理的具体逻辑
- 根据研究需求选择合适的子集
该数据集为网络异常检测研究提供了标准化的数据基础,研究人员可以专注于算法开发而非数据清洗,大幅提升研究效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



