Scala Spark:如何训练分布式稀疏回归模型?

问题描述

我正在尝试建立一个回归模型,该模型的基础特征矩阵非常大(在73K列上有418K行)并且非常稀疏(58M非零值,约占整个矩阵的0.2%)。

我将矩阵坐标表示为DataFrame,其中第一列是行坐标AndroidX,第二列是列坐标i,第三列是第j位的值

例如以下矩阵:

{i,j}

表示
+-+-+-+
|0|1|0|
|2|0|0|
|0|0|3|
+-+-+-+

我有一个单独的DataFrame,其中包含每行+-+-+-----+ |i|j|value| +-+-+-----+ |0|1| 1 | |1|0| 2 | |2|2| 3 | +-+-+-----+ 标签

如果可能的话,我希望该解决方案使用更新的i库而不是较旧的ml

解决方法

下面,我给出一个小代码示例,说明如何在mllib中实现分布式稀疏线性回归。我已经在大型集群(Databricks运行时版本6.5 ML-包括Apache Spark 2.4.5,Scala 2.11)上将矩阵与相关矩阵一起使用,因此它可以很好地扩展,并且只需几分钟即可执行。

spark ml