【问题标题】:Get all evaluation metrics after classification in pyspark在pyspark中获取分类后的所有评估指标
【发布时间】:2021-01-13 08:09:36
【问题描述】:

我已经训练了一个模型,想计算几个重要的指标,例如accuracyprecisionrecallf1 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)

但是,它只能计算accuracyauc,而不能计算其他三个。我应该在这里修改什么?

【问题讨论】:

    标签: machine-learning pyspark apache-spark-ml multiclass-classification


    【解决方案1】:

    根据docs,对于F1 measure、precision、recall,MulticlassClassificationEvaluator的相关参数应该分别为

    metricName="f1"
    metricName="precisionByLabel"
    metricName="recallByLabel"
    

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 2021-04-10
      • 2019-05-24
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 2017-07-21
      相关资源
      最近更新 更多