Sam
Sam

Reputation: 121

Spark ML - MulticlassClassificationEvaluator - can we get precision/recall by each class label?

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

Answers (2)

Som
Som

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

Owlright
Owlright

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 weightedPrecisionand weightedRecall in the metricName method. This will at least account for class imbalances.

Upvotes: 0

Related Questions