逻辑回归如何在 Spark 中并行化?

How is logistic regression parallelized in Spark?

我想对机器学习库中逻辑回归并行化的方法有一些了解,我已经尝试查看源代码,但我不明白这个过程。

Spark 使用所谓的小批量梯度下降进行回归:

http://ruder.io/optimizing-gradient-descent/index.html#minibatchgradientdescent

简而言之,它是这样工作的:

  1. Select数据样本
  2. 计算样本每一行的梯度
  3. 聚合梯度
  4. 返回步骤 1

Spark真正的优化代码来自这一行: https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/optimization/GradientDescent.scala#L234