Matriz de Confusión

Construye la matriz y obtén exactitud, precisión, recall y F1 por clase. Introduce los valores o pega tus predicciones.

Load example:

Matrix (comma-separated rows)

Class Names (comma-separated)

One name per class, matching the number of rows/columns in the matrix. If omitted, classes are auto-labeled Class 0, Class 1…

Confusion Matrix Heatmap

Predicted →
Actual →
spam
ham
spam
ham
55
5
8
32
Correct (diagonal)
Misclassified

Overall Accuracy

87.00%

87 correct

100 total

Per-Class Metrics

ClassPrecisionRecallF1 ScoreSupport
spam0.8730.9170.89460
ham0.8650.8000.83140
Macro avg0.8690.8580.863
Weighted avg0.8700.8700.869
F1 > 0.8Good
F1 > 0.6Moderate
F1 ≤ 0.6Needs improvement

Qué hace esta herramienta

Calcula todas las métricas de clasificación de una vez, sin abrir un notebook ni importar scikit-learn. Todo se procesa en la página; tus datos no salen del navegador.

  • Dos formas de entrada — rellenar la matriz directamente, o pegar las columnas de etiqueta real y predicha.
  • Cualquier número de clases — binaria o multiclase, sin límite fijo.
  • Métricas por clase — precisión, recall y F1 para cada una, no solo el total.
  • Promedios macro y ponderado — los dos, porque cuentan historias distintas.
  • Ejemplos precargados — spam/ham, sentimiento de 3 clases y un clasificador de imágenes de 5.

Cómo se lee la matriz

Las filas son la clase real y las columnas la predicha. La diagonal son los aciertos; todo lo que quede fuera es un error. En el caso binario:

Predicho: positivoPredicho: negativo
Real: positivoVP — aciertoFN — se te escapó
Real: negativoFP — falsa alarmaVN — acierto

Cuál de los dos errores te importa más depende del problema. En un filtro de spam, un FP manda una factura a la carpeta de correo no deseado. En un cribado médico, un FN deja pasar un caso real.

Exactitud, precisión y recall

exactitud = (VP + VN) / total
precisión = VP / (VP + FP)     ¿acerté cuando dije "sí"?
recall    = VP / (VP + FN)     ¿encontré todos los "sí"?
F1        = 2 · (precisión · recall) / (precisión + recall)

Ojo con la traducción: precisión es precision y exactitud es accuracy. Mucha documentación en español las intercambia y de ahí vienen bastantes malentendidos al comparar modelos.

Precisión y recall se compensan entre sí: subir el umbral mejora la precisión y empeora el recall. El F1 es su media armónica, así que solo sube si mejoran las dos.

La trampa del desbalanceo

Si el 99% de tus casos son negativos, un modelo que responda siempre «negativo» saca un 99% de exactitud y no sirve para nada: su recall en la clase positiva es 0. Por eso conviene mirar las métricas por clase antes que el total.

Ahí está la diferencia entre los dos promedios: el macro trata todas las clases igual y castiga que falles en las minoritarias; el ponderado las pesa por frecuencia y las deja escondidas. Cuando ves un macro muy por debajo del ponderado, ya sabes dónde mirar.

Preguntas frecuentes

¿Cuál es la diferencia entre precisión y exactitud?

En español se confunden mucho porque en inglés son precision y accuracy. La exactitud es el porcentaje de aciertos sobre el total. La precisión mide, de todo lo que predijiste como positivo, cuánto lo era de verdad. Son cosas distintas: con clases desbalanceadas puedes tener 95% de exactitud y una precisión inservible.

¿Qué introduzco, la matriz o las predicciones?

Lo que tengas. Puedes rellenar la matriz celda a celda, o pegar dos columnas con la etiqueta real y la predicha y se construye sola. También hay ejemplos precargados de 2, 3 y 5 clases.

¿Por qué el F1 macro y el ponderado no coinciden?

El macro promedia el F1 de cada clase dándoles el mismo peso; el ponderado pesa cada clase por su número de casos reales. Si difieren mucho, tienes clases desbalanceadas y el modelo va peor en las minoritarias.

¿En qué orden salen las clases?

Alfabético, para que la matriz sea estable entre ejecuciones. Filas son la clase real y columnas la predicha, así que la diagonal son los aciertos.

Herramientas relacionadas

Otros idiomas