【发布时间】:2020-07-21 09:47:06
【问题描述】:
我想使用 LSTM 预测股票价格。我已经成功训练了我的模型并保存了它。现在我已经重新加载了它,我将如何使用model.predict() 来预测在数据集中没有对应值的股票价格,因为目前我只能“预测”我的数据集中已经存在的已知值。
Senario:我的模型已经过训练(具有足够高的准确度)并且我已将其保存。我想应用我的模型 (load_model())。我的时间步长设置为 30 天,因此我以适当的格式加载了 30 天的数据(例如 3 月 9 日 - 4 月 8 日),但显然我没有“预期”的输出。我将如何使用model.predict() 来预测未来价值。或者我错过了什么?
上图是我使用model.predict() 来预测数据集中已经存在的价格(数据集有 1150 个数据点)。图表在第 1150 天结束。我如何预测第 1151 天?
模型摘要
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_1 (LSTM) (50, 60, 100) 42400
_________________________________________________________________
dropout_1 (Dropout) (50, 60, 100) 0
_________________________________________________________________
lstm_2 (LSTM) (50, 60) 38640
_________________________________________________________________
dropout_2 (Dropout) (50, 60) 0
_________________________________________________________________
dense_1 (Dense) (50, 20) 1220
_________________________________________________________________
dense_2 (Dense) (50, 1) 21
=================================================================
Total params: 82,281
Trainable params: 82,281
Non-trainable params: 0
【问题讨论】:
-
需要更多信息。如果您在训练数据上的准确率很高,但在非训练数据上的准确率很低,那么这听起来像是过拟合。如果您想引入一个新类别,您可能需要重新训练网络
-
我的模型已经过训练(具有足够高的准确性)并且我已经保存了它。我已经加载了我的模型,现在我想应用我的模型。我的时间步长设置为 30 天,因此我以适当的格式加载了 30 天的数据(例如 3 月 9 日 - 4 月 8 日),但显然我没有“预期”的输出。我将如何使用 model.predict() 来预测未来价值。还是我错过了什么?
-
没有看到模型我只能推测。您是否正确解码返回序列。您是否对相关输入数据进行标记/热编码。是的,predict() 或 predict_sequence() 使用经过训练或加载的模型运行推理。
-
我已经更新了我的帖子。希望这能澄清我的问题
标签: python tensorflow keras time-series prediction