Ir al contenido
  1. Posts/

¿Qué es el F1 Score en Machine Learning?

··266 palabras·2 mins·

📊 La accuracy te puede mentir. El F1 Score no.

Si tu dataset tiene clases desbalanceadas (por ejemplo, 95% negativo, 5% positivo), un modelo que predice “negativo” siempre tiene 95% de accuracy. Pero su F1 Score sería 0. Eso es exactamente lo que querés saber.

🧮 Las tres métricas clave:

MétricaPregunta que responde
PrecisionDe todos los que predije positivo, ¿cuántos realmente lo son? TP / (TP+FP)
RecallDe todos los positivos reales, ¿cuántos detecté? TP / (TP+FN)
F1 Score¿Cuánto equilibrio hay entre ambas? Media armónica de Precision y Recall

📐 La fórmula:

$$F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}$$

La media armónica penaliza los valores extremos. Si precision=0.90 y recall=0.10, el F1 es ≈ 0.18, no 0.50.

🐍 En Python con scikit-learn:

from sklearn.metrics import f1_score, classification_report

y_true = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0]
y_pred = [1, 0, 1, 1, 0, 0, 0, 1, 0, 0]

print(f"F1 Score: {f1_score(y_true, y_pred):.2f}")
# F1 Score: 0.67

print(classification_report(y_true, y_pred))

📏 Cómo interpretar el resultado:

  • 0.0–0.5: Modelo deficiente
  • 0.6–0.7: Aceptable (puede ser un punto de partida)
  • 0.8–0.9: Modelo sólido
  • 0.9–1.0: Excelente

⚠️ ¿Cuándo NO usar F1?

  • Cuando un tipo de error es mucho más costoso que el otro (usá Precision o Recall individualmente)
  • Cuando las clases están balanceadas y todos los errores valen igual (usá accuracy)

Más información en el link 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano