大多数机器学习算法是批量运行的还是每次都是获取新数据时运行?
计算机/软件
1 226
1
该提问暂无详细描述
收藏
2021-01-22 11:18 更新 karry •  1803
共 1 个回答
高赞 时间
1

我们需要在这里做出两个区分。

首先,我们需要区分学习的类型。训练机器学习模型的方法有两种:

  • 离线学习:对模型进行一次历史数据训练。将模型部署到生产环境后,它仍然保持不变,尽管如果模型变得不稳定(通常会发生这种情况),则可以对其进行重新训练。
  • 在线学习:随着新数据的到来,模型会不断更新。这对于时间序列数据(例如传感器数据或金融工具)特别有用,因为在线学习算法可以获取时间效应。对于拥有大量数据的网站(例如Google或Quora)也很有用。

其次,我们需要区分算法是如何进行预测的:

  • 批量预测:该算法根据其输入数据生成预测表。对于不依赖时间的数据,或者不需要始终保持输出完全新鲜的数据,这通常就足够了。
  • 按需预测:使用请求时可用的输入数据实时进行预测,通常以REST调用的形式出现。 区分这两个维度,我们可以使用2×2矩阵对机器学习模型的生产化分类:

让我来解释每个单元格:

预测 练习机器学习的最常见方法是离线批量预测。比如Kaggle竞赛,就是这样的运行方式。你可以将输入数据作为一个文件,训练模型并进行预测。尽管这种范例在商业智能中也很常见,但它更像是一个实验,而没有实际投入生产。

Web服务 将机器学习应用到应用程序中的一种更常见的方法是通过Web服务。再次,该模型是在历史数据上训练的,但是它使用新数据进行预测。离线调用Web服务模型似乎很奇怪,但这只是离线执行的实际训练。该服务始终使用可用的最新数据进行预测,但是模型保持不变。

自动化机器学习 如今一个非常热门的话题是自动化机器学习。这包括使整个训练,交叉验证和模型选择过程自动化。有一种算法,该算法可以使用可用于训练模型和生成预测的最新数据来重新训练自身并定期进行重复的批次预测。

但是,这种方法不能实时使用,因为训练模型需要时间。这可能是四种方法中使用最少的方法。

在线学习 这是生产机器学习的最动态方式。学习算法与(大)数据流挂钩,并在输入新数据时不断进行自我训练。不断更新的模型可以作为Web服务立即访问。从技术上讲,这是要实现的最具挑战性的设置,到目前为止,它已被大型公司广泛使用。

收藏
2021-01-22 11:43 更新 anna •  2593