Spark Streaming - 离线模型可以用于数据流吗

Spark Streaming - Can an offline model be used against a data stream

在这个link-LINK中提到了离线构建的机器学习模型可以针对流式数据进行测试。

摘自 Apache Spark Streaming MLlib link:

" 你也可以很方便的使用MLlib提供的机器学习算法。首先,有流式机器学习算法(如Streaming Linear Regression, Streaming KMeans等)可以同时学习流数据以及在流数据上应用模型。除此之外,对于更大的 class 机器学习算法,您可以离线学习学习模型(即使用历史数据)和然后将模型在线应用于流数据。有关详细信息,请参阅 MLlib 指南。

  1. 这是否意味着可以使用Spark内置的随机森林模型等复杂的学习模型来测试Spark Streaming程序中的流数据?在Spark Streaming程序中引用已经构建好的"Model"并调用"predictOnValues()"这么简单吗?

  2. 在这种情况下,现有的 Spark 流机器学习算法 (AND) 这种方法之间的主要区别在于流算法会随着时间的推移而进化,而离线(反对)在线流方法仍然会使用它之前学到的见解,而没有任何在线学习的可能性?

我做对了吗?请让我知道我对上述两点的理解是否正确。

这是否意味着可以使用复杂的学习模型,如 Spark 内置的随机森林模型来测试 Spark Streaming 程序中的流数据?

是的,您可以在批处理模式下训练像随机森林这样的模型,然后存储模型以供以后进行预测。如果您想将其与流式应用程序集成,其中值不断出现以进行预测,您只需将模型(实际上读取特征向量及其权重)加载到内存中并进行预测直到结束。


在Spark Streaming程序中引用构建好的"Model"调用"predictOnValues()"这么简单吗?

是的。


在这种情况下,现有的 Spark 流机器学习算法 (AND) 这种方法之间的主要区别是流算法会随着时间的推移而进化,而离线(反对)在线流方法仍然会使用它之前学到的见解,而没有任何在线学习的可能性?

训练模型只不过是更新特征的权重向量。您仍然必须选择 alpha(学习率)和 lambda(正则化参数)。因此,当您将使用 StreamingLinearRegression(或其他等效流媒体)时,您将有两个 dStreams,一个用于训练,另一个用于出于明显目的进行预测。