我在某些数据上使用Keras。详细信息如下: 8,000个客户,每个客户的时间步长从2-41不等。因此,我使用零填充以确保所有客户都有41个时间步长。所有8,000个客户都有2个功能,数据带有0-4个多类标签。每个tilmestep都有一个标签。
训练完模型后,在过程的测试部分中,我想输入1-40步的功能和标签,然后让它在第41步中预测标签。有人知道这是否可能吗?我发现Keras在解释它实际预测的内容时有点像黑匣子(例如,当它给出准确度得分时,此准确度是多少?它试图预测什么:最后一个tilmestep标签或所有tilmestep标签?)。
在顺序Keras LSTM模型中是否应使用特定的模型细分?我读过'多对一模型(f(...))在收到多个输入值(X(t),X(t + 1),..之后产生一个输出(y(t))值。 )。 '(Brownlee 2017)。但是,对于所有时间步长,除了我要预测的最后一个步长,我的输入都是Xt&Yt,这似乎并不能容纳这个事实。我不确定如何设置代码来指示模型预测最后一个时间步长(我有数据,但是我想将预测类别与实际类别进行比较)。
答案 0 :(得分:1)
要预测每个功能的下一个时间步,您希望最终的Dense
层的宽度与功能数量相同:
model.add(Dense(n_features))
在多个并行序列下有一个很好的例子说明了类似的问题 https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/
accuracy
只是衡量模型有效性的指标。为了准确起见,它是correct_predictions / total_predictions