【问题标题】:How to design an inpute matrix for binary classification in Keras如何在 Keras 中设计用于二进制分类的输入矩阵
【发布时间】:2018-01-17 12:46:59
【问题描述】:

我想根据从车辆中提取的传感器数据使用 RNN 预测车道变化。因此,我有一个输入矩阵,每行包含周期性总线数据(大约 40 毫秒)。每列包含来自单个传感器的数据。总之,我有 300 多列包含传感器数据。
我的带有标签数据的输出矩阵包含输入中的每个行条目的结果布尔值,表示车道变换。所以它们的长度相同。

例如:

..我的输入矩阵:..和输出矩阵: +--------+---------+--------+---------+...+ +-------- ---+ | ## |传感器 1 |传感器 2|传感器 3|...| |变道| +--------+---------+--------+---------+---+ +-------- ---+ |时间1| 15.0 | 42.0 | 1 |...| | 0 | +--------+---------+--------+---------+---+ +-------- ---+ |时间 2| 14.8 | 38.2 | 1 |...| | 0 | +--------+---------+--------+---------+---+ +-------- ---+ |时间 3| 14.3 | 27.0 | 0 |...| | 1 | +--------+---------+--------+---------+---+ +-------- ---+ |时间 n| . | . | . |...| | . |


Keras 需要像 LSTM 这样的循环神经网络 (RNN) 的输入结构
[样本、时间步长、特征]

现在我的问题:

我必须如何重塑我的输入矩阵才能使用 LSTM? 我是否必须为每个时间步将整个输入矩阵移动到下一行?
我想变道前的最后 2-3 秒对于预测来说可能很有趣,所以我需要很多时间步长,这也会导致我的输入矩阵有很多副本。

以下是我的想法:

下一个时间步的输入矩阵(移动第 1 行): +--------+---------+--------+---------+...+ | ## |传感器 1 |传感器 2|传感器 3|...| +--------+---------+--------+---------+---+ |时间1| 0.0 | 0.0 | 0 |...| +--------+---------+--------+---------+---+ |时间 2| 15.0 | 42.0 | 1 |...| +--------+---------+--------+---------+---+ |时间 3| 14.8 | 38.2 | 1 |...| +--------+---------+--------+---------+---+ |时间 4| 14.3 | 27.0 | 0 |...| 最后一个时间步长旁边的输入矩阵(移动第 2 行): +--------+---------+--------+---------+...+ | ## |传感器 1 |传感器 2|传感器 3|...| +--------+---------+--------+---------+---+ |时间1| 0.0 | 0.0 | 0 |...| +--------+---------+--------+---------+---+ |时间 2| 0.0 | 0.0 | 0 |...| +--------+---------+--------+---------+---+ |时间 3| 15.0 | 42.0 | 1 |...| +--------+---------+--------+---------+---+ |时间 4| 14.8 | 38.2 | 1 |...|

是这样吗?


请注意,我稍后会尝试减少传感器数据。目前这不是我的第一个目标。

【问题讨论】:

    标签: machine-learning keras lstm rnn


    【解决方案1】:

    据我了解,您需要做的是,

    1. 决定网络需要看到多少才能预测,什么 我的意思是你显示 n 步,网络将预测 n+1 步
    2. 将矩阵拆分为具有 n 行的多个矩阵,并将 n+1 行换道保存为标签

    现在你应该有 k 个形状为 [k-samples, n_stpes, m_sensor] 的矩阵的列表,这正是 rnn 需要的输入。

    【讨论】:

    • 感谢您的快速回复。听起来不错。我喜欢你将我的输入矩阵分成几块的想法,尽管我希望避免这种情况。根据您的提示,我认为我的方法一定很糟糕,因为我只能预测未来单行条目的状态。当我理解正确时,为了获得车道变化的模式,我必须创建更长的样本,每个样本包含多行。但在这种情况下,timestep=1 究竟意味着什么?
    • 我不清楚你在问什么,但如果你想预测超过 1 个时间步,你应该考虑对序列模型进行排序,我不确定在 keras 中是否有一个简单的实现,但是 tensorflow 中的那个很容易。我不知道您在询问 timestep=1 时指的是什么。
    • 忘记我对时间戳的问题。我的意图不是很清楚。在阅读了一段时间后,我认为我的问题以多对一问题的名称而闻名,结果是分类。总结一下:我有几个数组,其中包含上述结构描述的几个变道操作。因此,当前未知的行数(表示特定时间的传感器数据)包含一个模式,RNN 必须找到该模式才能预测变道操作。
    猜你喜欢
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 2021-05-02
    • 2018-01-21
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多