多元时间序列异常检测的train/validate/test数据集划分方案咨询
多元时间序列异常检测的数据集划分规范
时间序列任务的划分核心要求是严格按时间先后顺序切分,绝对不能随机打乱样本,否则会引入未来信息泄露,导致评估结果完全失真。以下是三类数据集的具体构成要求:
训练集(Train Set)
- 构成:仅允许包含无任何异常的正常时序数据,你当前仅用正常数据训练的方案符合半监督异常检测的标准范式,没有问题
- 时间范围:是三类数据集中时间最早的部分,建议占总可用正常数据的60%~70%
- 用途:仅用于模型核心参数的学习(比如时序分布拟合、重构模型权重更新等),禁止混入任何异常数据,也不能引入后续验证集、测试集的时序信息
验证集(Validation Set)
- 构成:由两部分组成:一是和训练集同分布、未被训练过的正常时序数据;二是人工标注的真实异常,或符合业务场景的模拟生成异常(可对正常数据做合理扰动生成,注意不能使用测试集中的任何异常样本)
- 时间范围:时序上紧跟训练集,早于测试集,建议占总可用数据的20%~25%
- 用途:仅用于超参数调优(比如异常判定阈值、模型窗口大小、网络层数等)、过拟合校验,调优全程不得接触测试集数据
测试集(Test Set)
- 构成:必须和真实落地场景的分布一致,即同时包含正常数据和真实异常数据,异常的类型、占比要尽可能匹配实际部署时的情况,所有样本都不能在训练、验证阶段出现过
- 时间范围:是三类数据集中时间最晚的部分,建议占总可用数据的10%~15%
- 用途:仅用于最终的模型性能评估,测试结果只能用于汇报最终效果,绝对不能反过来用于调整模型参数或超参数,否则会产生数据泄露,评估结果无实际参考价值
额外注意事项
- 所有预处理操作(比如归一化、缺失值填充、特征提取的统计量)只能基于训练集计算,再应用到验证集和测试集,禁止用验证集、测试集的统计量反向处理训练数据
- 如果数据存在明显的周期规律(比如日周期、周周期),划分时要保证每个数据集都覆盖完整的周期段,避免因周期缺失导致的评估偏差
- 验证集的异常构造不能参考测试集的异常分布,两类数据集的异常需要完全隔离
内容的提问来源于stack exchange,提问作者siaabd001
相关产品推荐
相关产品推荐

