Python 为深度学习扩充时间序列数据

Python 为深度学习扩充时间序列数据,python,pandas,dataframe,time-series,data-augmentation,Python,Pandas,Dataframe,Time Series,Data Augmentation,如果我想对我目前拥有的传感器数据集进行深入学习,我需要大量数据,否则我们可能会发现拟合过度。不幸的是,传感器只激活了一个月,因此需要增加数据。我目前拥有数据框形式的数据,如下所示: index timestamp cas_pre fl_rat ... 0 2017-04-06 11:25:00 687.982849 1627.040283 ... 1 2017-04-06 11:30:00

如果我想对我目前拥有的传感器数据集进行深入学习,我需要大量数据,否则我们可能会发现拟合过度。不幸的是,传感器只激活了一个月,因此需要增加数据。我目前拥有数据框形式的数据,如下所示:

index   timestamp              cas_pre        fl_rat         ...
0       2017-04-06 11:25:00    687.982849     1627.040283    ...
1       2017-04-06 11:30:00    693.427673     1506.217285    ...
2       2017-04-06 11:35:00    692.686310     1537.114807    ...
....
101003  2017-04-06 11:35:00    692.686310     1537.114807    ...
现在我想用。增加的形式可以是:

my_aug = (    
    RandomMagnify(max_zoom=1.2, min_zoom=0.8) * 2
    + RandomTimeWarp() * 2
    + RandomJitter(strength=0.1) @ 0.5
    + RandomTrend(min_anchor=-0.5, max_anchor=0.5) @ 0.5
)
扩充库的文档按照以下方式继续使用扩充:

X_aug, Y_aug = my_aug.run(X, Y)
Upong在现场进行了进一步的调查,似乎增广会影响numpy阵列。虽然它说这是一个多变量的增强,但并不确定它是如何有效地发生的

我希望在浮动数值列(如
cas\u pre
fl\u rat
)上应用这种一致的增强,以避免与原始数据和每个列之间的关系偏离太多。我不想应用诸如
timestamp
之类的行。我不知道如何在熊猫体内做到这一点。

这是我的尝试:

#Convert Pandas dataframe to Numpy array and apply tsaug transformations

import numpy as np
import pandas as pd
from tsaug import TimeWarp, Crop, Quantize, Drift, Reverse

df = pd.DataFrame({"timestamp": [1, 2],"cas_pre": [687.982849, 693.427673], "fl_rat": [1627.040283, 1506.217285]})

my_aug = (    
    Drift(max_drift=(0.1, 0.5))
)

aug = my_aug.augment(df[["timestamp","cas_pre","fl_rat"]].to_numpy())

print("Input:")
print(df[["timestamp","cas_pre","fl_rat"]].to_numpy()) #debug
print("Output:")
print(aug)
控制台输出:

Input:
[[1.00000000e+00 6.87982849e+02 1.62704028e+03]
 [2.00000000e+00 6.93427673e+02 1.50621728e+03]]
Output:
[[1.00000000e+00 9.13389853e+02 2.03588979e+03]
 [2.00000000e+00 1.01536282e+03 1.43177109e+03]]
您可能需要将时间戳转换为数字


您使用的tsaug函数似乎不存在,因此我仅以drift()为例。经过一些实验后,默认情况下,TimeWarp()不会影响时间戳(第1列),但TimeWarp()*5通过将每个时间戳克隆5次来插入新样本。

您是否能够共享示例数据集(所有列,但只有几行)?我对时间序列扩充的速度不是特别快,但我假设它会创建新的假样本-因此需要与这些样本关联的新时间戳?那么它实际上是通过列来扩充数据吗?是的,在我的示例中,输出列1是时间戳,列2是cas_pre,列3是f1_rat。仅修改第2列和第3列。不相关,但经过一些实验,TimeWarp()的函数与我最初的想法略有不同。将更新答案。是的,我最终使用了你使用的一些东西,并取得了一些成功,请同时更新你的答案。