Spark Streaming - 可以针对数据流使用脱机模型

时间:2016-10-22 05:33:43

标签: apache-spark pyspark spark-streaming apache-spark-mllib

在这个链接 - LINK中,提到已经离线构建的机器学习模型可用于对流数据进行测试。

摘自Apache Spark Streaming MLlib链接:

" 您还可以轻松使用MLlib提供的机器学习算法。首先,存在流媒体机器学习算法(例如,流媒体线性回归,流媒体KMeans等),其可以同时从流数据中学习以及将模型应用于流数据。 除此之外,对于更大类的机器学习算法,您可以离线学习学习模型(即使用历史数据),然后在线应用流数据模型。有关详细信息,请参阅MLlib指南 "

  1. 这是否意味着可以使用像Spark中构建的Random Forest模型这样的复杂学习模型来测试Spark Streaming程序中的流数据?是否像参考"模型"一样简单;已建成并调用" predictOnValues()"在Spark Streaming程序中使用它?

  2. 在这种情况下,现有的火花流机器学习算法(AND)之间的主要区别是这种方法是流式算法会随着时间的推移而发展,离线(反对)在线流方法仍然是使用之前学到的知识,而没有任何在线学习的可能性?

  3. 我说得对吗?如果我对上述两点的理解是正确的,请告诉我。

1 个答案:

答案 0 :(得分:3)

这是否意味着可以使用像Spark中构建的Random Forest模型这样的复杂学习模型来测试Spark Streaming程序中的流数据?

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

是否像引用已构建的“模型”一样简单,并在Spark Streaming程序中调用“predictOnValues()”?

在这种情况下,现有的火花流机器学习算法(AND)之间的主要区别是这种方法是流式算法会随着时间的推移而发展,离线(对抗)在线流方法仍然是使用之前学到的知识,而没有任何在线学习的可能性?

训练模型只不过是更新要素的权重向量。您仍然必须选择alpha(学习率)和lambda(正则化参数)。因此,当您使用StreamingLinearRegression(或其他流媒体等价物)时,您将有两个dStream用于训练,另一个用于预测,用于显而易见的目的。