Я использую MLlib из Apache-Spark и Scala. Мне нужно преобразовать группу векторов
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.mllib.regression.LabeledPoint
в LabeledPoint для применения алгоритмов MLLib
Каждый вектор состоит из значения Double, равного 0,0 (ложь) или 1,0 (истина). Все векторы сохраняются в СДР, поэтому окончательный СДР имеет тип
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) набор LabeledPoint для использования алгоритмов MLLib? Например, мне нужно применить линейные алгоритмы SVM, показанные здесь