double の RDD があり、次のように「標準化」したいとします。
- 各列の平均と標準偏差を計算します
- 列ごとに、各エントリから列平均を引き、結果を列 sd で割ります
これを効率的かつ簡単に行うことはできますか (どの段階でも RDD を double 配列に変換する必要はありません)。
よろしくお願いいたします。
double の RDD があり、次のように「標準化」したいとします。
これを効率的かつ簡単に行うことはできますか (どの段階でも RDD を double 配列に変換する必要はありません)。
よろしくお願いいたします。
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)
}