Apache-Spark と Scala の MLlib を使用しています。ベクトルのグループを変換する必要があります
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.regression.LabeledPoint
MLLib のアルゴリズムを適用するために、LabeledPoint で
各ベクトルは、0.0 (false) または 1.0 (true) の Double 値で構成されます。すべてのベクトルは RDD に保存されるため、最終的な RDD は次のタイプになります。
val data_tmp: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]
したがって、RDD には、次のように作成されるベクトルがあります。
def createArray(values: List[String]) : Vector =
{
var arr : Array[Double] = new Array[Double](tags_table.size)
tags_table.foreach(x => arr(x._2) = if (values.contains(x._1)) 1.0 else 0.0 )
val dv: Vector = Vectors.dense(arr)
return dv
}
/*each element of result is a List[String]*/
val data_tmp=result.map(x=> createArray(x._2))
val data: RowMatrix = new RowMatrix(data_tmp)
この RDD (data_tmp) または RowMatrix (data) から、MLLib アルゴリズムを使用するための LabeledPoint セットを作成するにはどうすればよいですか? たとえば、ここに示す SVM 線形アルゴリズムを適用する必要があります