6

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 線形アルゴリズムを適用する必要があります

4

1 に答える 1