如何有效地使火花RowMatrix居中(平均移位)?

时间:2018-08-06 08:48:13

标签: scala apache-spark linear-algebra

我想知道什么是将中心居中的有效方法 在Spark中有效地获取RowMatrix的数据(对于大型输入),请执行库  或已经存在执行此操作的功能? 到目前为止,我正在考虑只定义一个函数,然后使用map减去 是什么意思,但这有效吗?

我要这样做是为了在以后执行SVD(执行PCA) 给定的矩阵。

编辑: 在这里,我发现了可以通过前面提到的方法(使用map)进行均值平移的东西:

ScreenTwoFragment

源:https://github.com/apache/spark/pull/17907/commits/956ce87cd151a9b30d181618aad7ef2a7ee859dc

预先感谢

1 个答案:

答案 0 :(得分:1)

提取行:

val mat: RowMatrix = ???
val rows = mat.rows

适合StadardScalerModel

import org.apache.spark.mllib.feature.StandardScaler

val scaler = new StandardScaler(withMean = true, withStd = false).fit(rows)

比例

scaler.transform(rows)