Time-Series-Library 时间序列数据增广实操指南:15 种方法一篇讲清 📅 发布时间:2026/9/13 12:15:48 👁 浏览次数: Time-Series-Library 时间序列数据增广实操指南15 种方法一篇讲清【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library手里只有几百条短的时间序列样本一训练验证集降、测试集涨问题一定出在模型上吗未必往往就是样本不够。Time-Series-Library 数据增广的做法是把每条已有样本拧几遍形态相近但曲线不再一样模型一次就能见过同一种模式的多种变体。拧动的是形状拧不动的是标签语义保持不变。直接打开utils/augmentation.py看它怎么用。 一张图看懂这个模块先看为什么拧曲线成立同一段时间序列按不同周期去看周期内和周期间的变化不一样形态拧一点仍然算同一类。数据增广模块就在utils/augmentation.py共 15 个可选开关、14 个独立实现函数两种 DTW 引导方法各带一个 Shape-DTW 版本。核心思路只有一个把已有样本当原料按值、时间轴、结构、跨样本四个维度改写得到标签相同的新样本再把放大的训练集喂回模型。其中 9 种不需要标签6 种需要这决定了你的任务里能点用哪几个。 方法速查到底改了什么开关改动对象一句话说明需要标签jitter值每个点加一点高斯噪声模拟测量误差否scaling值按特征乘一个接近 1 的随机系数幅度整体升降否magwarp值曲线乘上一条缓变的样条因子幅度呼吸否timewarp时间轴沿时间随机拉伸或压缩整条序列否windowslice时间轴随机截一段短的插值补回原长只留局部特征否windowwarp时间轴对局部小窗口序列的 10%按 0.5 或 2 倍伸缩否permutation结构切成等长段把段的顺序打乱否randompermutation结构切成随机长度的段把段的顺序打乱否rotation结构按特征随机翻符号、再打乱特征顺序否spawner跨样本两条同类样本沿 DTW 对齐路径逐点平均是wdba跨样本类内样本围绕中心点做加权平均造出原型曲线是dtwwarp跨样本沿同类样本的 DTW 路径拧动当前样本是shapedtwwarp跨样本同上把 DTW 换成 Shape-DTW是discdtw跨样本挑最能和其他类区分开的同类样本来引导扭曲是discsdtw跨样本同上用 Shape-DTW是强度参数默认值都很小jitter的sigma0.03、time_warp的sigma0.2也就是说拧完的曲线离原曲线不远。挑的时候先看改动对象列这次想扰的是一瞬间的幅度、出现的时机还是先后顺序右侧 6 行都要先做 DTW动态时间规整找出两条曲线的对应关系再动手所以必须有标签其余 9 行是纯随机操作从不看标签。挑一个拆开看Time Warp 是怎么扭的time_warp最直观。输入是一条定长的时间序列它先在时间轴上均布 6 个结点每个结点抽一个均值在 1 附近的随机系数连成一条三次样条曲线——像把橡皮筋上随机挑几处按住局部拉长或压短。随后每个原始时间戳都按这条曲线重新取一次值。输出还是原来那么长但有的峰被压扁、有的段被右移模式没丢只是变调了。系数分布以 1 为中心所以大部分位置几乎不动输入输出形状一致下游模型一行都不用改。上图是预测任务经增广训练后的结果蓝色是真实值橙色是预测走势基本贴住了。 三步把增广跑起来照着调就行。第一步看形状输入得是三维(batch_size, sequence_length, num_channels)如果拿到的是二维用run_augmentation_single()它会自动补一个 batch 维。第二步开开关augmentation_ratio决定增广几轮每轮把勾上的方法各跑一遍。第三步把返回的x_aug直接当新训练集标签已经同步复制好了第三个返回值是实验标签用来追踪实验可忽略。args.augmentation_ratio 3 # 再造 3 份同规模数据 args.jitter True # 加一点噪声 args.timewarp True # 拧时间轴 x_aug, y_aug, _ run_augmentation(x_train, y_train, args)⚡ 你的任务不同选法不同长短期预测没有标签可用先上时间轴类timewarp、windowslice加jitter把波形什么时候出现改掉对预测最划算。分类跨样本类可以打开。dtwwarp、wdba靠标签引导扭曲保证拧完类别不变单个类样本太少时spawner能补位。异常检测保守一点。异常窗口本身就是稀有信号强时间轴扭曲可能把它抹平从低强度的jitterscaling起步。参数起点小样本场景augmentation_ratio从 3 开始试仓库默认是 0即关闭先开 2 个开关效果好再逐个加强度参数如sigma保持默认不动。还能往前走一步想再进一步有两条路一条是生成式增广从噪声里直接生成新曲线不再受已有样本的形态限制另一条是把数据增广模块和 Time-Series-Library 自带的零样本预训练模型models/下的 TimesFM、Chronos搭配着用。下次数据不够用的时候先打开utils/augmentation.py看看。【免费下载链接】Time-Series-LibraryA Library for Advanced Deep Time Series Models for General Time Series Analysis.项目地址: https://gitcode.com/GitHub_Trending/ti/Time-Series-Library创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考