如何使用Keras Python 3查找总损失、准确度、预测日期和时间?
我试图预测OHLC值。到目前为止,我已经做到了这一点:如何使用Keras Python 3查找总损失、准确度、预测日期和时间?,python,python-3.x,tensorflow,keras,jupyter,Python,Python 3.x,Tensorflow,Keras,Jupyter,我试图预测OHLC值。到目前为止,我已经做到了这一点: 可以看到我的代码正在运行。但我对我创建的模型几乎没有疑问 我不知道预测的结果有多准确 误差损失是否改善 我甚至无法理解为什么所做的预测在图表上没有日期和时间?我想知道预测的日期 我怎样才能达到目标?有没有办法将OHLC与预测时间结合起来?使用这些指标: 指标的使用 度量是用于判断模型性能的函数。编译模型时,将在metrics参数中提供度量函数 度量函数类似于损失函数,只是在训练模型时不使用评估度量的结果 model.compile(lo
可以看到我的代码正在运行。但我对我创建的模型几乎没有疑问
我怎样才能达到目标?有没有办法将OHLC与预测时间结合起来?使用这些指标: 指标的使用 度量是用于判断模型性能的函数。编译模型时,将在metrics参数中提供度量函数 度量函数类似于损失函数,只是在训练模型时不使用评估度量的结果
model.compile(loss='mean_squared_error',optimizer='sgd', metrics=['mae', 'acc'])
您可以传递现有度量的名称,也可以传递一个Theano/TensorFlow符号函数(请参见自定义度量)
论据
真的:真的标签。Theano/张量流张量
预测。与y_形状相同的no/TensorFlow张量为真
退换商品
单个张量值,表示所有数据点上输出数组的平均值
并且,为了评估培训后模型的性能,您可以使用
评价
退换商品
测试模式下模型的损失值和度量值
就你而言
我想您只需更改这些行:
model\u open.compile(loss='mse',optimizer='rmsprop')
模型_high.compile(loss='mse',optimizer='rmsprop')
模型低编译(loss='mse',optimizer='rmsprop')
模型_close.compile(loss='mse',optimizer='rmsprop')
到
model_open.compile(loss='mse',optimizer='rmsprop',metrics=['mae','acc'])
模型_high.compile(loss='mse',optimizer='rmsprop',metrics=['mae','acc'])
模型低编译(loss='mse',optimizer='rmsprop',metrics=['mae','acc'])
模型_close.compile(loss='mse',optimizer='rmsprop',metrics=['mae','acc'])
最后,用以下方法评估模型:
model_open.evaluate(testX_open,testY_open)
模型高。评估(testX高,testY高)
模型低。评估(testX低,testY低)
model_close.evaluate(testX_close,testY_close)
要在训练栏上添加精度acc之类的指标,只需像这样修改compile语句。我正在尝试。您还可以让我知道问题“我甚至无法理解为什么做出的预测在图表上没有日期和时间?我想知道做出预测的日期。”
model\u close.evaluate(testX\u close,trainY\u close)
这句话正确吗?是否需要使用trainY\u close
或testY\u close
验证testX\u close
?运行evaluate()
时出错:ValueError:输入数组的样本数应与目标数组相同。找到6039个输入样本和24160个目标样本。
你是对的,这是模型关闭。评估(testX\u关闭,testY\u关闭)
不是模型关闭。评估(testX\u关闭,trainY\u关闭)
很抱歉,我已经编辑了答案来更正它。根据我从你的代码中看到的日期和时间,您训练hte LSTM网络从当前值预测下一个值,数据集中每小时有一个值。因此,我猜这将在预测中保持不变,因此如果你从10个值开始预测,其中最后一个值是2018.06.01的10:00,我猜第一个预测值将是2018.06.01的11:00,第二个预测值将是2018.06.01的12:00,依此类推。这是有意义的,因为网络只知道一个时间步的存在,而不知道实际的日期或时间。
evaluate(self, x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None)