当我有多个可变长度的时间序列数据时,如何使用Keras格式化LSTM网络的训练数据?

2024-04-26 10:45:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两组不同长度的训练数据。我将这些数据系列称为x_列车数据。它们的形状分别是(70480,7)和(69058,7)。每列表示不同的传感器读数

我正试图在这些数据上使用LSTM网络。我应该将数据合并到一个对象中吗?我该怎么做

我还有两组数据,它们是x_列车数据的结果输出。这两个都是尺寸(315,1)。我会用它作为我的y_列车数据吗

到目前为止,我使用pandas.read_csv()读取了以下数据:

c4_x_train = pd.read_csv('path')
c4_y_train = pd.read_csv('path')

c6_x_train = pd.read_csv('path')
c6_y_train = pd.read_csv('path')

如有任何澄清,我们将不胜感激。谢谢


Tags: csv数据path网络readtrain传感器pd
1条回答
网友
1楼 · 发布于 2024-04-26 10:45:06

就几点

    对于快速文件阅读,考虑使用不同的格式,如拼花或羽毛。小心折旧,所以对于长时间存储,csv很好
  • pd.concat是你在这里的朋友。像这样使用
from pathlib import Path
import pandas as pd
dir_path = r"yourFolderPath"
files_list = [str(p) for p in dir_path.glob("**/*.csv")]
if files_list:
    source_dfs = [pd.read_csv(file_) for file_ in files_list]
    df = pd.concat(source_dfs, ignore_index=True)

然后您可以使用此df进行培训

现在,关于培训。嗯,这要视情况而定。如果你在那些CSV中有datetime,并且它们是连续的,那么就继续吧。如果在测量之间有中断,则可能会遇到问题。根据趋势、随机性和噪声,可以对缺失的数据进行插值。有多种方法,如朴素方法、用平均值填充方法、根据以前的值进行预测等等。没有对错之分,这实际上取决于数据的外观

编辑:注释不喜欢代码块。 工作原理如下: 例如:

#df1:
time    value
    1     1.4
    2     2.5

#df2:
time    value
    3     1.1
    4     1.0

#will be glued together to become df = pd.concat([df1, df2], ignore_index=True)
time    value
   1      1.4
   2      2.5
   3      1.1
   4      1.0

相关问题 更多 >