¿Cómo ejecuto el árbol de decisión de Spark con un conjunto de características categóricas usando Scala?

Tengo un conjunto de características con una información categórica correspondiente: Map [Int, Int]. Sin embargo, por mi vida, no puedo entender cómo se supone que debo hacer que funcione la clase DecisionTree. No aceptará nada, sino un La LabelPoint como datos. Sin embargo, La LabelPoint requiere (doble, vector) donde el vector requiere dobles.

val LP = featureSet.map(x => LabeledPoint(classMap(x(0)),Vectors.dense(x.tail)))

// Run training algorithm to build the model
val maxDepth: Int = 3
val isMulticlassWithCategoricalFeatures: Boolean = true
val numClassesForClassification: Int = countPossibilities(labelCol) 
val model = DecisionTree.train(LP, Classification, Gini, isMulticlassWithCategoricalFeatures, maxDepth, numClassesForClassification,categoricalFeaturesInfo)

El error que obtengo:

scala> val LP = featureSet.map(x => LabeledPoint(classMap(x(0)),Vectors.dense(x.tail)))
<console>:32: error: overloaded method value dense with alternatives:
  (values: Array[Double])org.apache.spark.mllib.linalg.Vector <and>
  (firstValue: Double,otherValues: Double*)org.apache.spark.mllib.linalg.Vector
 cannot be applied to (Array[String])
       val LP = featureSet.map(x => LabeledPoint(classMap(x(0)),Vectors.dense(x.tail)))

Mis recursos hasta ahora:configuración del árbol, árbol de decisión, punto de etiqueta

Respuestas a la pregunta(3)

Su respuesta a la pregunta