gpt4 book ai didi

python - 当训练数据在不同长度的时间序列的多个 csv 文件中时,如何提供 LSTM?

转载 作者:太空狗 更新时间:2023-10-30 00:18:24 47 4
gpt4 key购买 nike

我正在运行 LSTM 来对每位患者的医疗记录进行分类。话虽如此,对于每位患者(一次观察),我都有一个 CSV 文件。整个数据集是多个CSV文件,每个文件都是时间序列的DataFrame。 这不是很明显,因为在为 LSTM 提供图像和时间序列之间存在一个小差异,那就是序列的大小。 CNN 假设输入具有相同的大小,但这里我们有不同长度的输入

问题:

在这种情况下如何提供 LSTM?

我相信如果您熟悉图像分类,您可以帮助解决我的问题,但这不仅仅是相同的方法。

示例

对于一位患者,我有一个 DataFrame,其中包含我想在我的 LSTM 中使用的所有记录。

df.shape
Out[29]: (5679000, 4)
# The 5679000 change from one patient to another but 4 columns are fixed

看这里:

df.head(4)

Out[30]:

AIRFLOW SaO2 ECG Target
0 -34.0 31145.0 304.0 0.0
1 -75.0 31145.0 272.0 0.0
2 -63.0 31145.0 254.0 0.0
3 -57.0 31145.0 251.0 1.0
4 -60.0 31145.0 229.0 0.0

问题:

对我的网络有什么建议吗?

最佳答案

由于您的数据点具有可变的序列长度,因此您无法轻松地一次性训练您的网络。相反,您必须以大小为 1 的小批量进行训练或固定序列长度,尽管根据您正在处理的数据,后者可能没有意义。

看看 Keras 函数 train_on_batch .使用它,您可以使用每个患者训练您的模型,尽管使用批量大小 1 有其自己的 issues。 .

至于模型,我建议使用 Keras functional API .如果您想尝试一些简单的事情,只需使用长度可变且特征大小为 3 的输入序列。这应该给你一个基线,这就是我假设你想要从你的函数名中得到的。像这样:

input_ = Input(shape=(None, 3))
x = LSTM(128)(input_)
output = Dense(1, activation='sigmoid')(x)
model = Model(input_, output)

关于python - 当训练数据在不同长度的时间序列的多个 csv 文件中时,如何提供 LSTM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54794867/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com