在这个链接中,我们提到了一个离线构建的机器学习模型可以用来测试流数据。
apache spark流媒体mllib链接摘录:
“您还可以轻松地使用mllib提供的机器学习算法。首先,流式机器学习算法(如流式线性回归、流式kmeans等)既可以从流式数据中学习,又可以将模型应用于流式数据。除此之外,对于更大类别的机器学习算法,您可以离线学习学习模型(即使用历史数据),然后在线将模型应用于流数据。有关详细信息,请参阅mllib指南。”
这是否意味着可以使用spark内置的随机森林模型这样的复杂学习模型来测试spark流程序中的流数据?它是否像在spark流媒体程序中引用已构建的“模型”并在其上调用“predictonvalues()”那么简单?
在这种情况下,现有的spark流式机器学习算法(和这种方法)之间的主要区别是流式算法会随着时间的推移而发展,而离线(反对)在线流式方法仍然会使用其先前所学知识的见解,而不存在任何在线学习的可能性吗?
我说得对吗?请让我知道,如果我对上述两点的理解是正确的。
1条答案
按热度按时间fivyi3re1#
这是否意味着可以使用spark内置的随机森林模型这样的复杂学习模型来测试spark流程序中的流数据?
是的,您可以在批处理模式下训练一个类似随机林的模型,并存储该模型以供以后进行预测。如果您想将其与流式应用程序集成,在流式应用程序中,连续不断地出现预测值,您只需将模型(实际读取特征向量及其权重)加载到内存中,并进行预测,直到结束。
它是否像在spark流媒体程序中引用已构建的“模型”并在其上调用“predictonvalues()”那么简单?
对。
在这种情况下,现有的spark流式机器学习算法(和这种方法)之间的主要区别是流式算法会随着时间的推移而发展,而离线(反对)在线流式方法仍然会使用其先前所学知识的见解,而不存在任何在线学习的可能性吗?
训练模型只不过是更新特征的权重向量。您仍然需要选择alpha(学习率)和lambda(正则化参数)。因此,当您使用streaminglinearregression(或其他流等价物)时,您将有两个数据流,一个用于训练,另一个用于预测。