我正在尝试对时间序列数据进行深度学习。
每种数据有12个特征,但是每个系列数据没有相同数量的数据。
有些形状是[48,12],有些是[54,12],我正尝试将它们的大小调整为[50,12]。
到目前为止,我所知道的只是在skimage.transform中使用了调整大小,但是我不知道它是否运作良好。
还有其他解决方案吗?
例如,数据中的功能之一如下所示。 形状为[55,1],我想将其重塑为[50,1]。
a = np.array[-5.529309, -4.6293, -3.068647, -4.897388, -4.39951, -4.753769, -3.729291,
-4.973984, -5.060155, -4.686748, -4.696322, -3.939932, -3.470778, -6.209103,
-5.586756, -4.466532, -3.193116, -5.337818, -5.596331, -4.006954, -3.499502,
-3.413331, -6.304848, -4.322914, -4.246317, -5.759098, -5.893142, -6.381444,
-4.52398, -4.198445, -5.634629, -6.276124, -5.17505, -4.322914, -4.198445,
-4.600576, -4.39951, -4.945261, -5.759098, -4.677173, -3.623971, -5.692076,
-6.563361, -5.462287, -4.868664, -5.941015, -6.400594, -5.692076, -4.591002,
-6.027186, -5.960164, -6.256975, -5.414414, -5.730374, -6.726129]
如果我使用resize,数据将如下所示。
答案 0 :(得分:0)
一种选择是在 tslearn 中使用 TimeSeriesResampler。这通过(线性)插值重新采样数据,将给定的时间序列调整为您指定的固定大小。 https://tslearn.readthedocs.io/en/stable/gen_modules/preprocessing/tslearn.preprocessing.TimeSeriesResampler.html
示例:
from tslearn.preprocessing import TimeSeriesResampler
ts = np.arange(5)
new_ts = TimeSeriesResampler(sz=9).fit_transform(ts)
final_ts = np.squeeze(new_ts)
print(ts) # [0 1 2 3 4]
print(new_ts) # [[[0. ] [0.5] [1. ] [1.5] [2. ] [2.5] [3. ] [3.5] [4. ]]]
print(final_ts) # [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4.]