Wie führe ich den Spark-Entscheidungsbaum mit einem kategorialen Feature-Set in Scala aus?
Ich habe ein Feature-Set mit einem entsprechenden categoricalFeaturesInfo: Map [Int, Int]. Für mein ganzes Leben kann ich jedoch nicht herausfinden, wie ich die DecisionTree-Klasse zum Laufen bringen soll. Es wird nur ein LabeledPoint als Daten akzeptiert. Für LabeledPoint ist jedoch (double, vector) erforderlich, während für den Vektor double erforderlich sind.
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)
Den Fehler bekomme ich:
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)))
Meine bisherigen Ressourcen:Baumkonfiguration, Entscheidungsbaum, markierter Punkt