1

double の RDD があり、次のように「標準化」したいとします。

  1. 各列の平均と標準偏差を計算します
  2. 列ごとに、各エントリから列平均を引き、結果を列 sd で割ります

これを効率的かつ簡単に行うことはできますか (どの段階でも RDD を double 配列に変換する必要はありません)。

よろしくお願いいたします。

4

1 に答える 1

5

Spark自体からStandardScalerを使用できます

/**
 * Standardizes features by removing the mean and scaling to unit variance 
 * using column summary
 */

  import org.apache.spark.mllib.feature.StandardScaler
  import org.apache.spark.mllib.linalg.Vector
  import org.apache.spark.rdd.RDD

  val data: RDD[Vector] = ???
  val scaler = new StandardScaler(true, true).fit(data)

  data.foreach { vector =>
    val scaled = scaler.transform(vector)
  }
于 2014-12-12T18:52:15.207 に答える