Apache Spark(MLLib)用于实时分析

Pan*_*ias 7 machine-learning cassandra apache-spark

我有一些与使用Apache Spark进行实时分析相关的问题.提交Spark应用程序时,存储在Cassandra数据库中的数据将通过机器学习算法(支持向量机)加载和处理.在新数据到达时,通过Spark的流式传输扩展,它们将保留在数据库中,重新训练现有数据集并执行SVM算法.此过程的输出也存储在数据库中.

  1. Apache Spark的MLLib提供线性支持向量机的实现.如果我想要一个非线性SVM实现,我应该实现自己的算法,还是可以使用现有的库,如libsvm或jkernelmachines?这些实现不是基于Spark的RDD,有没有办法在不使用RDD集合从头开始实现算法的情况下做到这一点?如果不是,如果我想测试几种算法,那将是一项巨大的努力.
  2. MLLib是否在执行SVM算法之前提供了开箱即用的数据扩展工具?http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf,见2.2节
  3. 在对新数据集进行流式处理时,是否需要重新训练孔数据集?有什么方法可以将新数据添加到已经训练过的数据中吗?

vik*_*sit 1

分段回答你的问题,

  • Spark 提供了 MLUtils 类,允许您将数据从 LIBSVM 格式加载到 RDD 中 - 因此仅数据加载部分不会阻止您使用该库。如果您知道自己在做什么,您也可以实现自己的算法,尽管我的建议是采用现有的算法并调整目标函数并查看其运行情况。Spark 基本上为您提供了分布式随机梯度下降过程的功能 - 您可以用它做任何事情。
  • 从来没听说过。希望其他人知道答案。
  • 当整个数据被传输时重新训练是什么意思?

从文档中,

.. 除了拟合发生在每批数据上,以便模型不断更新以反映流中的数据。