es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener números de soporte en pyspark.ml como los obtenemos en el informe de clasificación de sklearn?

Estoy usando Pyspark y puedo obtener métricas como precisión, F1, precisión y recall de MulticlassClassificationEvaluator, pero no estoy seguro de cómo obtener los números de soporte como los que obtenemos en el informe de clasificación de sklearn. En mi caso, la variable “rfc_pred” tiene el grupo de cada clase que ejecuto en un bucle. ¿Funcionará “rfc_pred.count()”?

A continuación se muestra mi código actual:

from pyspark.ml.evaluation import MulticlassClassificationEvaluator

evaluator = MulticlassClassificationEvaluator(labelCol="label", predictionCol="prediction")

accuracy = evaluator.evaluate(rfc_pred, {evaluator.metricName: "accuracy"}) 

f1 = evaluator.evaluate(rfc_pred, {evaluator.metricName: "f1"})

weightedPrecision = evaluator.evaluate(rfc_pred, {evaluator.metricName: "weightedPrecision"})

weightedRecall = evaluator.evaluate(rfc_pred, {evaluator.metricName: "weightedRecall"})
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener los números de soporte para cada clase en la clasificación multietiqueta utilizando Pyspark, puedes usar la función groupBy para agrupar por la columna de etiqueta y luego contar el número de instancias para cada etiqueta. Aquí tienes un ejemplo de código:

    from pyspark.sql.functions import count
    
    support = rfc_pred.groupby('label').agg(count('label').alias('support'))
    support.show()
    

    La función groupby agrupa las predicciones por la columna de etiqueta, y la función agg aplica la función count para contar el número de instancias para cada etiqueta. La función alias asigna el nombre support a la columna de recuento resultante. La función show muestra los números de soporte resultantes para cada etiqueta.

    Ten en cuenta que esto asume que rfc_pred es un DataFrame de Spark con la columna label que contiene las etiquetas verdaderas y la columna prediction que contiene las etiquetas predichas. Si tienes múltiples etiquetas por instancia, es posible que necesites modificar el código para manejarlas correctamente.

Comments are closed.