我想了解一下在机器学习库中用于并行化逻辑回归的方法,我已经尝试查看源代码,但没有理解这个过程。
回答:
Spark 使用所谓的 mini batch 梯度下降法进行回归:
http://ruder.io/optimizing-gradient-descent/index.html#minibatchgradientdescent
简而言之,其工作原理如下:
- 选择数据的一个样本
- 计算样本中每行的梯度
- 聚合梯度
- 回到步骤1
Spark 实际的优化代码从这一行开始:https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/mllib/optimization/GradientDescent.scala#L234