我如何 "measure" Keras 中的时间序列预测代码的性能?
How do I "measure" the performance of a time-series forecasting code in Keras?
我对在 Keras 中进行时间序列预测还很陌生。对于我正在处理的问题,我想知道我的模型的表现如何。我想知道完成此任务的一些最佳实践。请指教,在此先感谢。
我假设您想查找模型的 accuracy
和 loss
:
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()
以上脚本获取并绘制预测数据和验证损失。我不经常处理时间序列,所以我不能根据我的经验给你任何建议,但这里有一些很好的链接,希望能对你有所帮助:
其实我在这里找到了答案。对于我正在研究的回归问题,Brownlee 博士解释了三种方法:平均绝对误差、均方误差和 R^2:LINK 这正是我想要的。感谢大家的帮助和负分!
我对在 Keras 中进行时间序列预测还很陌生。对于我正在处理的问题,我想知道我的模型的表现如何。我想知道完成此任务的一些最佳实践。请指教,在此先感谢。
我假设您想查找模型的 accuracy
和 loss
:
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()
以上脚本获取并绘制预测数据和验证损失。我不经常处理时间序列,所以我不能根据我的经验给你任何建议,但这里有一些很好的链接,希望能对你有所帮助:
其实我在这里找到了答案。对于我正在研究的回归问题,Brownlee 博士解释了三种方法:平均绝对误差、均方误差和 R^2:LINK 这正是我想要的。感谢大家的帮助和负分!