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"})
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:La función
groupby
agrupa las predicciones por la columna de etiqueta, y la funciónagg
aplica la funcióncount
para contar el número de instancias para cada etiqueta. La funciónalias
asigna el nombresupport
a la columna de recuento resultante. La funciónshow
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 columnalabel
que contiene las etiquetas verdaderas y la columnaprediction
que contiene las etiquetas predichas. Si tienes múltiples etiquetas por instancia, es posible que necesites modificar el código para manejarlas correctamente.