如何解决在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",metricName="precision")
eval_recall = MulticlassClassificationEvaluator(labelCol="label",metricName="recall")
eval_f1 = MulticlassClassificationEvaluator(labelCol="label",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
,而不能计算其他三个。我应该在这里修改什么?
解决方法
根据docs,对于F1度量,精度和查全率,MulticlassClassificationEvaluator
的相关参数应分别为
metricName="f1"
metricName="precisionByLabel"
metricName="recallByLabel"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。