Métricas de Evaluación en Modelos de Clasificación: Accuracy, Precision y Recall

Clase 25 de 26Curso de Algoritmos de Clasificación de Texto

Contenido del curso

Resumen

Evaluar un modelo de machine learning va mucho más allá de verificar cuántas predicciones acertó. Un clasificador puede ser excelente detectando correos spam y, al mismo tiempo, fallar al reconocer los que no lo son. Para distinguir estos matices existen tres métricas fundamentales —accuracy, precision y recall— que, analizadas en conjunto, revelan con claridad las fortalezas y debilidades de cualquier algoritmo de clasificación.

¿Qué mide el accuracy y por qué no es suficiente?

El accuracy [0:52] es la métrica más básica en un problema de clasificación. Se calcula como la proporción entre el número de predicciones correctas y el total de predicciones realizadas. Su valor máximo es 1, lo que indicaría que el modelo acertó en cada caso.

En una matriz de confusión —la representación visual de los cuatro estados posibles en clasificación binaria— el accuracy corresponde a la suma de dos bloques:

  • Verdaderos positivos: correos que eran spam y fueron clasificados correctamente como spam.
  • Verdaderos negativos: correos que eran ham y fueron clasificados correctamente como ham.

Sin embargo, un accuracy alto puede esconder problemas serios. Si el dataset tiene 90 % de correos ham y solo 10 % de spam, un modelo que siempre prediga "ham" obtendría 90 % de accuracy sin identificar jamás un correo spam.

¿Cómo diferenciar precision de recall en clasificación?

¿Qué significa precision?

La precision [1:23] responde una pregunta concreta: de todos los correos que el modelo clasificó como spam, ¿cuántos realmente lo eran? En la matriz de confusión se calcula dividiendo los verdaderos positivos entre la suma de verdaderos positivos y falsos positivos (correos ham que fueron marcados erróneamente como spam).

En el ejercicio práctico [3:22], el modelo obtuvo precision de 0.82 para ham y 1.0 para spam. Esto significa que cada vez que el algoritmo etiquetó un correo como spam, acertó el 100 % de las veces.

¿Qué significa recall?

El recall [1:52] plantea la pregunta inversa: de todos los correos que realmente eran spam en el dataset, ¿qué fracción logró capturar el modelo? Se calcula dividiendo los verdaderos positivos entre la suma de verdaderos positivos y falsos negativos (spam que pasó desapercibido).

Los resultados del modelo [4:00] mostraron un recall de 1.0 para ham y 0.50 para spam. El algoritmo identificó la totalidad del ham real, pero solo logró capturar el 50 % del spam que existía en los datos.

¿Dónde está la diferencia fundamental?

Un modelo puede predecir pocos correos como spam y acertar en todos ellos, alcanzando precision perfecta. Pero eso no garantiza que haya encontrado todos los correos spam del dataset [4:48]. Ahí radica la distinción clave:

  • Precision: qué tan confiables son las predicciones positivas.
  • Recall: qué tan completa es la detección de los casos reales.

¿Cómo calcular estas métricas en Python con scikit-learn?

Desde el notebook en Google Colab [2:36], la implementación es directa. Se importan las tres funciones desde sklearn.metrics:

python from sklearn.metrics import accuracy_score, precision_score, recall_score

Para precision y recall se utilizan dos argumentos adicionales:

python precision_score(classes_test, classes_predict, average=None, zero_division=1) recall_score(classes_test, classes_predict, average=None, zero_division=1)

  • average=None devuelve el valor para cada clase por separado.
  • zero_division=1 reemplaza divisiones por cero con el valor uno.

El modelo entrenado con Naive Bayes mantuvo un accuracy superior al 85 % [2:58], lo cual combinado con las métricas de precision y recall ofrece un panorama completo del rendimiento.

La recomendación práctica es siempre calcular las tres métricas en conjunto [5:18]. Solo así se puede evaluar, desde todos los ángulos posibles, cómo se desempeña un clasificador. Un modelo con alto accuracy pero bajo recall en una categoría crítica podría generar consecuencias graves en producción.

Si estás construyendo tu propio clasificador, experimenta ajustando los datos de entrenamiento y observa cómo cambian estas tres métricas. ¿Tu modelo favorece la precision o el recall? Comparte tus resultados y reflexiones.