Comment puis-je exécuter l'Étincelle de l'arbre de décision avec une catégorie de fonction définie à l'aide de la Scala?

J'ai un ensemble de fonctionnalités avec un correspondant categoricalFeaturesInfo: Carte[Int,Int]. Cependant, pour la vie de moi je ne peux pas comprendre comment je suis censé obtenir le DecisionTree classe pour travailler. Il ne sera pas accepter n'importe quoi, mais un LabeledPoint comme des données. Cependant, LabeledPoint exige (double, vecteur) où le vecteur nécessite doubles.

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)

L'erreur que je reçois:

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)))

Mes ressources:
arbre de config, arbre de décision, labeledpoint

OriginalL'auteur Climbs_lika_Spyder | 2014-07-30