如何解决当我有多个长度可变的时间序列数据时,如何使用Keras格式化LSTM网络的训练数据?
我有两组长度不同的训练数据。我将这些数据系列称为x_train数据。它们的形状分别是(70480,7)和(69058,7)。每列代表一个不同的传感器读数。
我试图在此数据上使用LSTM网络。我应该将数据合并到一个对象中吗?我该怎么办?
我还有两组数据,它们是x_train数据的结果输出。它们都是大小(315,1)。我可以将其用作我的y_train数据吗?
到目前为止,我已使用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')
任何澄清表示赞赏。谢谢!
解决方法
只有几点
- 要快速读取文件,请考虑使用其他格式,例如镶木地板或羽毛。小心折旧,因此对于长时间存储,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中有日期时间并且它们是连续的,请继续。如果在两次测量之间有中断,则可能会遇到问题。根据趋势,生理性和噪声,您可以插补丢失的数据。有多种方法,例如天真的方法,用均值填充,根据之前的值进行预测等等。没有对与错,这实际上取决于您的数据是什么样。
编辑:注释不喜欢代码块。 像这样工作: 示例:
#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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。