Métricas de Evaluación en Modelos de Clasificación: Accuracy, Precision y Recall
Clase 25 de 26 • Curso de Algoritmos de Clasificación de Texto
Resumen
¿Cómo se mide el rendimiento de un modelo de clasificación?
Al desarrollar un modelo de clasificación, no basta con implementar el algoritmo y obtener un número entre el 0 y el 1 que represente su rendimiento. Es esencial que comprendamos las distintas métricas de evaluación que nos permiten analizar cómo se desempeña el modelo en diferentes escenarios. Uno puede encontrarse con un modelo que clasifica muy bien ciertas categorías pero falla al predecir otras. Por eso, abordaremos las principales métricas usadas en el análisis de modelos de clasificación: accuracy, precisión y recall.
¿Qué es el accuracy?
El accuracy (o precisión en términos generales) es quizás la métrica más básica y común. Esta representa la proporción entre el número de predicciones correctas y el número total de predicciones realizadas. En un modelo de clasificación binario, el accuracy se calcula sumando los verdaderos positivos y los verdaderos negativos, es decir, cuando nuestro modelo logra identificar un elemento como spam cuando efectivamente lo es, o cuando predice correctamente un mensaje como no spam. Un accuracy del 100% indicarían un modelo perfecto en sus predicciones.
¿Qué significan precisión y recall?
La precisión (precision) se refiere a cuántas de las instancias que clasificamos como positivas realmente lo son. Por ejemplo, cuando consideramos que un correo es spam, la precisión nos indica qué porcentaje de esos correos efectivamente es spam. Se calcula combinando los verdaderos positivos con los falsos positivos.
El recall, por otro lado, mide la capacidad del modelo para identificar todos los ejemplos positivos. Es la fracción de instancias positivas verdaderas que el sistema logró identificar. Esto es crucial cuando la identificación de toda instancia positiva es más crítica que el número de falsos positivos identificados, tal como en detecciones de enfermedades.
¿Cómo calcularlas en Python?
Los cálculos de precisión y recall se simplifican utilizando la biblioteca scikit-learn
en Python, que nos proporciona funciones específicas para cada métrica.
from sklearn.metrics import accuracy_score, precision_score, recall_score
# supongamos que 'y_test' son las etiquetas verdaderas y 'predicciones' son nuestras predicciones del modelo
accuracy = accuracy_score(y_test, predicciones)
precision = precision_score(y_test, predicciones, zero_division=1)
recall = recall_score(y_test, predicciones, zero_division=1)
En este caso, el parámetro zero_division=1
en precision_score
y recall_score
decide que en el evento de una división por cero, el resultado será 1 en lugar de lanzar un error.
¿Por qué es importante usar estas métricas?
Al evaluar un modelo de clasificación, a menudo es insuficiente confiar sólo en el accuracy, ya que un modelo puede mostrar un alto grado de precisión pero aún fallar en un número significativo de casos (recall bajo), o viceversa. Usar un conjunto de métricas permite tener una visión más completa del rendimiento y comportamiento del modelo. Al finalizar el desarrollo de un algoritmo de machine learning, se recomienda siempre calcular estas tres métricas: precision, recall y accuracy para evaluar exhaustivamente su desempeño.
Como hemos explorado, entender estas métricas te proporciona una base más sólida para mejorar y ajustarte a las necesidades específicas que pudieras tener al entrenar y evaluar modelos de machine learning. ¡Sigue practicando y experimentando con diferentes algoritmos y métricas!