Tsaug:是一个用于时序数据增强的 Python 库,它提供了一系列简洁且易用的时序数据增强方法。允许通过组合不同的增强方法来创建复杂的增强管道,适用于深度学习模型的训练。

常用的Tsaug数据增强方法有:

  • TimeWarp(n_speed_change, max_speed_ratio): 对时间轴进行非线性扭曲,模拟数据的速度变化。
  • Crop(size): 从序列中裁剪指定大小的片段。
  • Quantize(n_levels): 将时间序列数据量化到指定级别的离散值。
  • Drift(max_drift): 在整个序列上添加缓慢变化的漂移量。
  • Reverse(): 反转序列。
  • AddNoise(scale): 添加高斯噪声,scale 控制噪声的强度。
  • Convolve(size): 使用随机或自定义核对数据进行卷积。
  • Dropout(p): 以概率 p 随机丢弃一些数据点。
  • Pool(size): 在时间维度上进行最大池化或平均池化。

示例代码和生成示例图效果如下:

from tsaug import TimeWarp, Quantize, Pool, Crop, Drift, AddNoise, Convolve, Dropout
# 示例数据
import numpy as np
import matplotlib.pyplot as plt
# 示例数据
data = np.arange(0,100)
# 使用 TimeWarp 增强
augmenter = TimeWarp(n_speed_change=3, max_speed_ratio=1.5)
augmented_data = augmenter.augment(data)

# 使用 Crop 增强
cropper = Crop(size=50)
cropped_data = cropper.augment(data)

# 使用 Quantize 增强
quantizer = Quantize(n_levels=10)
quantized_data = quantizer.augment(data)

# 使用 Drift 增强
drifter = Drift(max_drift=0.5, n_drift_points=10)
drifted_data = drifter.augment(data)

# 使用 AddNoise 增强
# scale=0.1 表示噪声的标准差
noiser = AddNoise(scale=0.1)
noisy_data = noiser.augment(data)

# 使用 Convolve 增强
convolver = Convolve(size=7)
convolved_data = convolver.augment(data)

# 使用 Dropout 增强
# p=0.2 表示丢弃 20% 的数据
dropout = Dropout(p=0.2)
dropped_data = dropout.augment(data)

# 使用 Pool 增强
pooler = Pool(size=10, kind='max')
pooled_data = pooler.augment(data)

plt.figure()
plt.plot(data,label='source')
plt.plot(augmented_data,label = 'aug_timewarp')
plt.plot(pooled_data,label = 'aug_pool')
plt.plot(quantized_data,label = 'aug_quantized')
plt.plot(drifted_data,label = 'aug_drifted')
plt.plot(noisy_data,label = 'aug_noisy')
plt.plot(convolved_data,label = 'aug_conv')
plt.plot(dropped_data,label = 'aug_drop')

plt.legend()
plt.show()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐