Получите все оценочные показатели после классификации в pyspark

Я обучил модель и хочу рассчитать несколько важных показателей, таких как accuracy, precision, recall и f1 score.

Я следовал следующему процессу:

from pyspark.ml.classification import LogisticRegression

lr = LogisticRegression(featuresCol='features',labelCol='label')
lrModel = lr.fit(train)
lrPredictions = lrModel.transform(test)

from pyspark.ml.evaluation import MulticlassClassificationEvaluator
from pyspark.ml.evaluation import BinaryClassificationEvaluator

eval_accuracy = MulticlassClassificationEvaluator(labelCol="label", predictionCol="prediction", metricName="accuracy")
eval_precision = MulticlassClassificationEvaluator(labelCol="label", predictionCol="prediction", metricName="precision")
eval_recall = MulticlassClassificationEvaluator(labelCol="label", predictionCol="prediction", metricName="recall")
eval_f1 = MulticlassClassificationEvaluator(labelCol="label", predictionCol="prediction", metricName="f1Measure")

eval_auc = BinaryClassificationEvaluator(labelCol="label", rawPredictionCol="prediction")

accuracy = eval_accuracy.evaluate(lrPredictions)
precision = eval_precision.evaluate(lrPredictions)
recall = eval_recall.evaluate(lrPredictions)
f1score = eval_f1.evaluate(lrPredictions)

auc = eval_accuracy.evaluate(lrPredictions)

Однако он может вычислять только accuracy и auc, но не три других. Что мне здесь изменить?


person mah65    schedule 27.09.2020    source источник


Ответы (1)


Согласно документам , для измерения F1, точности и напоминания соответствующие аргументы MulticlassClassificationEvaluator должны быть соответственно

metricName="f1"
metricName="precisionByLabel"
metricName="recallByLabel"
person desertnaut    schedule 27.09.2020