Apache Spark(MLLib)用于实时分析

时间:2014-06-24 14:45:11

标签: machine-learning cassandra apache-spark

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

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

1 个答案:

答案 0 :(得分:1)

分段回答你的问题,

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

来自文档,

  

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