如何“衡量”Keras中时间序列预测代码的性能?

时间:2017-12-31 13:40:50

标签: python deep-learning time-series keras forecasting

我对Keras的时间序列预测非常陌生。对于我正在处理的问题,我想知道我的模型表现得有多好。我想知道完成这项任务的一些最佳实践。请提前告知,并提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为您要查找模型的accuracyloss

model.compile(...)
model.fit(...)
eval_loss, eval_accuracy = model.evaluate(test_set, test_set,
                                          batch_size=batch_size, verbose=1)
print("Accuracy: {:.2f}%".format(eval_accuracy * 100))
print("Loss: {}".format(eval_loss))

您甚至可以绘制图表以查看培训期间的损失和准确性:

import matplotlib.pyplot as plt
history = model.fit(...)        

summarize history for accuracy 
plt.figure(1)
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()

# summarize history for loss
plt.figure(1)
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()

修改

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(columns=['Series', 'Scale Signal'])

history = model.fit(...)
predicted = model.predict(test_input)

df_val_loss = pd.DataFrame(history.history['val_loss'])
df_val_loss.plot()

df_predicted = pd.DataFrame(predicted).T
df_predicted.columns = ['Predicted']

df_result = pd.concat([df, df_predicted], ignore_index=True)
df_result.plot()

plt.show()

以上脚本获取并绘制预测数据和验证损失。我不经常使用时间序列,所以我不能从我的经验中给出任何建议,但这里有一些很好的链接,我希望可以帮助你:

答案 1 :(得分:0)

我实际上在这里找到了答案。对于我正在研究的回归问题,Brownlee博士解释了三种方式:平均绝对误差,均方误差和R ^ 2:LINK这正是我所寻找的。感谢大家的帮助和负面意见!