pandas - 我应该转移数据集以将其用于 LSTM 回归吗?

标签 pandas machine-learning deep-learning lstm recurrent-neural-network

也许这是一个愚蠢的问题,但当我用谷歌搜索时,我没有找到太多相关信息。

我有一个数据集,我用它进行回归,但是使用 FFNN 进行正常回归不起作用,所以我想为什么不尝试 LSTM,因为我的数据是时间相关的,我认为因为它是驾驶时来自车辆的 token ,所以数据是单调的,也许我可以在这种情况下使用 LSTM 进行回归来预测连续值(如果这没有意义,请告诉我)。

现在第一步是准备使用 LSTM 的数据,因为我会预测 future ,所以我认为我的目标(地面实况或标签)应该向上移动,对吗?

因此,如果我有一个 pandas 数据框,其中每一行都包含特征和目标(在行的末尾),我假设特征应该保持在原来的位置,并且目标将向上移动一步,以便第一行中的特征将对应于第二行的目标(我错了吗)。

这样,LSTM 将能够根据这些特征预测 future 的值(value)。

我在互联网上没有找到太多相关信息,所以请您向我提供如何使用一些代码来做到这一点?

我也知道我可以使用pandas.DataFrame.shift来移动数据集,但我认为最后一个值将包含NaN!怎么处理这个问题?如果您向我展示一些示例或代码,那就太好了。

最佳答案

我们可能需要有关您正在使用的数据的更多信息。另外,我建议在开始使用 LSTM 之前从更简单的循环神经网络开始。这些网络的工作方式是您输入第一位信息,然后是下一位信息,然后是下一位信息,等等。假设当您输入第一位信息时,它发生在时间 t,然后在时间 t+1 馈送第二位信息...等等,直到时间 t+n

您可以让神经网络在每个时间步输出一个值(因此在时间 tt+1 输出一个值...t+n 在输入每个相应的输入后)。这是一个多对多的网络。或者,您可以让神经网络在提供所有输入后输出一个值(即在时间t+n输出该值)。这称为多对一网络。您需要什么取决于您的用例。

例如,假设您每 100 毫秒记录一次车辆行为,10 秒后(即第 100 个时间步),您想要预测驾驶员受到酒精影响的可能性。在这种情况下,您将使用多对一网络,在后续时间步骤中放入后续车辆行为记录(第一个记录在时间 t ,然后下一个记录在时间 t+1等),然后最后的时间步输出概率值。

如果你想在每个时间步后输出一个值,你可以使用多对多设计。也可以每 k 个时间步输出一个值。

关于pandas - 我应该转移数据集以将其用于 LSTM 回归吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59374126/

相关文章:

python - 实际上在云中训练谷歌云机器学习引擎 - 对该方法的澄清

python - 具有多个输入的 TensorFlow 自定义层中构建方法的 Input_shape

python - 过滤掉 Pandas 数据框中的某些列

python - 如何读取Excel中第一列及其值作为pandas数据框中的列名称

machine-learning - 在分割训练集和测试数据集之前,机器学习中有多少种预处理技术?

machine-learning - 几乎为零目标的神经网络

python - Pandas 对多列进行分组并将结果广播到原始数据帧

python - 从 json 文件将嵌套数据导入 pandas

python - Keras 一个操作在 train_on_batch 时对梯度有 None

machine-learning - 迁移学习需要来自更相关的领域吗?