Reputation: 121
I am doing a multiclass prediction with random forest in Spark ML.
For this MulticlassClassificationEvaluator() in spark ML, is it possible to get precision/recall by each class labels?
Currently, I am only seeing precision/recall combined for all class together.
Upvotes: 12
Views: 3241
Reputation: 6323
Use directly org.apache.spark.mllib.evaluation.MulticlassMetrics
and then get metrics available-
// copied from spark git
val predictionAndLabels =
dataset.select(col($(predictionCol)), col($(labelCol)).cast(DoubleType)).rdd.map {
case Row(prediction: Double, label: Double) => (prediction, label)
}
val metrics = new MulticlassMetrics(predictionAndLabels)
Upvotes: 1
Reputation: 180
Looking at the class documentation this doesn't seem to be possible, using the built-in methods.
Although not exactly what you are looking for, you could use weightedPrecision
and weightedRecall
in the metricName
method. This will at least account for class imbalances.
Upvotes: 0