我已经训练并验证了我的 LSTM,我想部署它。所以,我知道我们可以保存和加载 Keras 的 Sequential 对象(你可以猜到我正在使用 Keras)。因此,我使用这些函数实现了一个代码。
但是,我想知道我是否必须使用所有可用数据(训练 + 测试)来训练我的模型,或者像我在学习期间所做的那样只在训练集上训练。许多教程都在讨论如何训练模型,但没有多少人清楚如何部署模型。
我想知道什么是常见的,知道我正在做时间序列预测,这是一个特定的问题。
我已经训练并验证了我的 LSTM,我想部署它。所以,我知道我们可以保存和加载 Keras 的 Sequential 对象(你可以猜到我正在使用 Keras)。因此,我使用这些函数实现了一个代码。
但是,我想知道我是否必须使用所有可用数据(训练 + 测试)来训练我的模型,或者像我在学习期间所做的那样只在训练集上训练。许多教程都在讨论如何训练模型,但没有多少人清楚如何部署模型。
我想知道什么是常见的,知道我正在做时间序列预测,这是一个特定的问题。
就个人而言,我会支持按原样部署它。即不要对所有数据进行重新训练。
一旦你训练了新数据,你就有了一个新模型。您不知道该模型将如何对来自广阔世界的看不见的测试数据做出反应。您无法验证或测试它,因为您已经在训练中使用了所有这些数据。
谁知道会发生什么!
随着您收到更多数据并获得有关模型的反馈,您可以创建新的训练/测试集,微调模型,然后根据需要重新部署它。
我在华尔街度过了过去 16 年。我们所做的一切都是基于时间序列数据。当新数据可用时,您真的应该重新训练模型,否则预测结果和实际结果将很快开始出现分歧。此外,您可能会将所有数据用于训练(您可能没有足够的数据来留出一些用于测试目的)。查看下面的链接,以更深入地了解所有这些是如何工作的。
关于时间序列预测的 3 个事实让经验丰富的机器学习从业者感到惊讶
在部署模型方面,它应该非常简单。我在 1 天前才这样做。我按照下面链接中的说明进行操作。试试看,看看你们相处得如何。
A)关于用什么数据训练你的模型,你总是想在训练数据上训练你的模型,并保留一些数据来评估看不见的数据(在这种情况下是测试数据)的性能。
B)关于时间序列模型的部署,您需要准备一个管道,其中 1)您可以在任何首选平台(云)上部署打包的模型文件(可以是腌制文件、pmml、onnx、h2o 打包文件等) /local machine),2)获取已部署实例的 API 端点,您可以将预测请求发送到该端点,3)使用您的真实和预测数据监控响应并计算错误指标(RMSE/MAPE 等),以帮助您跟踪4)当有新数据可用时重新训练模型很重要,尤其是在时间序列的情况下,因为未来是不可预测的,您需要考虑趋势和季节性。确保您部署的模型始终根据可用的最新数据进行训练。
以上是构建更好的机器学习系统所需的时间序列模型的部署管道。