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()