Saltar al contenido principal

¿Qué es una matriz de confusión en el aprendizaje automático? Explicación de la herramienta de evaluación de modelos

Observa cómo una matriz de confusión clasifica las predicciones del modelo en Verdaderos Positivos, Falsos Positivos, Verdaderos Negativos y Falsos Negativos. Sigue leyendo para comprender su estructura, pasos de cálculo y usos para tratar datos desequilibrados y análisis de errores.
Actualizado 16 ene 2025  · 12 min de lectura

Este año ha sido un año de innovación en el campo de la ciencia de datos, con la inteligencia artificial y el aprendizaje automático dominando los titulares. Aunque no cabe duda de los progresos realizados en 2023, es importante reconocer que muchos de estos avances del aprendizaje automático sólo han sido posibles gracias a los correctos procesos de evaluación a los que se someten los modelos. Los profesionales de los datos tienen la tarea de garantizar que se realizan evaluaciones y procesos precisos para medir el rendimiento de un modelo de aprendizaje automático. Esto no es beneficioso, es esencial.

Si quieres adentrarte en el arte de la ciencia de datos, este artículo te guiará a través de los pasos cruciales de la evaluación de modelos mediante la matriz de confusión, una herramienta relativamente sencilla pero potente que se utiliza mucho en la evaluación de modelos.

Así que vamos a sumergirnos y aprender más sobre la matriz de confusión.

¿Qué es la Matriz de la Confusión?

La matriz de confusión es una herramienta utilizada para evaluar el rendimiento de un modelo y se representa visualmente en forma de tabla. Proporciona una visión más profunda a los profesionales de los datos sobre el rendimiento, los errores y los puntos débiles del modelo. Esto permite a los profesionales de los datos seguir analizando su modelo mediante el ajuste fino.

La estructura de la matriz de confusión

Vamos a conocer la estructura básica de una matriz de confusión, utilizando el ejemplo de identificar un correo electrónico como spam o no spam.

  • Verdadero positivo (TP) - Tu modelo predijo la clase positiva. Por ejemplo, identificar un correo electrónico como spam.
  • Negativo verdadero (NT) - Tu modelo predijo correctamente la clase negativa. Por ejemplo, identificar un correo electrónico normal como no spam.
  • Falso positivo (FP) - Tu modelo predijo incorrectamente la clase positiva. Por ejemplo, identificar un correo normal como spam.
  • Falso negativo (FN) - Tu modelo predijo incorrectamente la clase negativa. Por ejemplo, identificar un correo basura como un correo normal.

Para comprender realmente el concepto de matriz de confusión, echa un vistazo a la siguiente visualización:

La estructura de una matriz de confusión

Estructura básica de una matriz de confusión

Terminología de la matriz de confusión

Para comprender en profundidad la Matriz de Confusión, es esencial entender las métricas importantes que se utilizan para medir el rendimiento de un modelo.

Definamos las métricas importantes:

Precisión

La precisión mide el número total de clasificaciones correctas dividido por el número total de casos.

Fórmula de precisión para la matriz de confusión

Memoria/Sensibilidad

El recuerdo/sensibilidad mide el número total de verdaderos positivos dividido por el número total de verdaderos positivos.

Fórmula de recuperación de la matriz de confusión

Precisión

La precisión mide el número total de positivos verdaderos dividido por el número total de positivos predichos.

Fórmula de precisión para la matriz de confusión

Especificidad

La especificidad mide el número total de verdaderos negativos dividido por el número total de verdaderos negativos.

Fórmula de especificidad para la matriz de confusión

Puntuación F1

La puntuación F1 es una métrica única que es una media armónica de la precisión y la recuperación.

Fórmula de puntuación F1 para la matriz de confusión

El papel de una matriz de confusión

Para comprender mejor la matriz de confusión, debes entender el objetivo y por qué se utiliza ampliamente.

Cuando se trata de medir el rendimiento de un modelo o de cualquier cosa en general, la gente se centra en la precisión. Sin embargo, depender en gran medida de la métrica de precisión puede conducir a decisiones incorrectas. Para entenderlo, repasaremos las limitaciones de utilizar la precisión como métrica independiente.

Limitaciones de la precisión como métrica independiente

Como se ha definido anteriormente, la precisión mide el número total de clasificaciones correctas dividido por el número total de casos. Sin embargo, utilizar esta métrica de forma independiente tiene limitaciones, como por ejemplo

  • Trabajar con datos desequilibrados: Ningún dato es perfecto, y el uso de la métrica de precisión debe evaluarse en función de su poder predictivo. Por ejemplo, trabajar con un conjunto de datos en el que una clase supera a otra hará que el modelo alcance un mayor índice de precisión, ya que predecirá la clase mayoritaria.
  • Tipos de error: Comprender y aprender sobre el rendimiento de tu modelo en un contexto específico te ayudará a afinar y mejorar su rendimiento. Por ejemplo, diferenciar los tipos de errores mediante una matriz de confusión, como FP y FN, te permitirá explorar las limitaciones del modelo.

A través de estas limitaciones, la matriz de confusión, junto con la variedad de métricas, ofrece una visión más detallada sobre cómo mejorar el rendimiento de un modelo.

Las ventajas de una matriz de confusión

Como se ve en la estructura básica de una matriz de confusión, las predicciones se dividen en cuatro categorías: Verdadero positivo, Verdadero negativo, Falso positivo y Falso negativo.

Este desglose detallado ofrece información valiosa y soluciones para mejorar el rendimiento de un modelo:

  • Resolver los datos desequilibrados: Como ya se ha explorado, utilizar la precisión como métrica independiente tiene limitaciones cuando se trata de datos desequilibrados. Utilizar otras métricas, como la precisión y el recuerdo, permite una visión más equilibrada y una representación más exacta. Por ejemplo, los falsos positivos y los falsos negativos pueden tener grandes consecuencias en sectores como el Financiero.
  • Diferenciador del tipo de error: Comprender los distintos tipos de errores producidos por el modelo de aprendizaje automático permite conocer sus limitaciones y áreas de mejora.
  • Contrapartidas: El equilibrio entre el uso de diferentes métricas en una Matriz de Confusión es esencial, ya que se influyen mutuamente. Por ejemplo, un aumento de la precisión suele conllevar una disminución de la recuperación. Esto te guiará en la mejora del rendimiento del modelo utilizando el conocimiento de los valores métricos impactados.

Calcular una matriz de confusión

Ahora que ya conocemos bien una matriz de confusión básica, su terminología y su uso, pasemos a calcular manualmente una matriz de confusión, seguido de un ejemplo práctico.

Calcular manualmente una matriz de confusión

Aquí tienes una guía paso a paso sobre cómo calcular manualmente una Matriz de Confusión.

Define los resultados

El primer paso será identificar los dos posibles resultados de tu tarea: Positivo o Negativo.

Recoger las predicciones

Una vez definidos tus posibles resultados, el siguiente paso será recopilar todas las predicciones del modelo, incluyendo cuántas veces predijo el modelo cada clase y su ocurrencia.

Clasificación de los resultados

Una vez cotejadas todas las predicciones, el siguiente paso es clasificar los resultados en las cuatro categorías:

  • Verdadero positivo (TP)
  • Verdadero negativo (VN)
  • Falso positivo (FP)
  • Falso negativo (FN)

Crear una matriz

Una vez clasificados los resultados, el siguiente paso es presentarlos en una tabla matricial, para analizarlos posteriormente utilizando diversas métricas.

Ejemplo práctico de matriz de confusión

Veamos un ejemplo práctico para demostrar este proceso.

Siguiendo con el mismo ejemplo de identificar un correo electrónico como spam o no spam, vamos a crear un hipotético conjunto de datos en el que el spam sea Positivo y el no spam sea Negativo. Tenemos los siguientes datos:

  • Entre los 200 correos, 80 correos son realmente spam, de los cuales el modelo identifica correctamente 60 como spam (TP).
  • Entre los 200 correos, 120 correos no son spam, de los que el modelo identifica correctamente 100 como no spam (TN).
  • Entre los 200 correos electrónicos, el modelo identifica incorrectamente como spam 20 correos electrónicos que no son spam (FP).
  • Entre los 200 correos, el modelo pasa por alto 20 correos spam y los identifica como no spam (FN).

Llegados a este punto, hemos definido el resultado y recogido los datos; el siguiente paso es clasificar los resultados en las cuatro categorías:

  • Verdadero positivo: 60
  • Verdadero negativo: 100
  • Falso positivo: 20
  • Falso negativo: 20

El siguiente paso es convertir esto en una Matriz de Confusión:

Real / Previsto

Spam (Positivo)

No Spam (Negativo)

Spam (Positivo)

60 (TP)

20 (FN)

No Spam (Negativo)

20 (FP)

100 (TN)

Entonces, ¿qué nos dice la Matriz de la Confusión?

  • Los Verdaderos Positivos y los Verdaderos Negativos indican predicciones precisas.
  • Los Falsos Positivos indican que el modelo predijo incorrectamente la clase positiva.
  • Los Falsos Negativos indican que el modelo no identificó ni predijo la clase positiva.

Utilizando esta matriz de confusión, podemos calcular las distintas métricas: Exactitud, Recall/Sensibilidad, Precisión, Especificidad y Puntuación F1.

Resultados de la métrica de la matriz de confusión

Resultado de la métrica de la matriz de confusión

Precisión vs. Retirada

Quizá te preguntes por qué la puntuación F1 incluye la precisión y la recuperación en su fórmula. La métrica de puntuación F1 es crucial cuando se trata de datos desequilibrados o cuando quieres equilibrar el compromiso entre precisión y recuperación.

La precisión mide la exactitud de la predicción positiva. Responde a la pregunta "cuando el modelo predijo VERDADERO, ¿con qué frecuencia acertó? La precisión, en particular, es importante cuando el coste de un falso positivo es elevado.

La recuperación o sensibilidad mide el número de positivos reales identificados correctamente por el modelo. Responde a la pregunta de "Cuando la clase era realmente VERDADERA, ¿con qué frecuencia acertó el clasificador?".

La recuperación es importante cuando se demuestra que omitir una instancia positiva (FN) es significativamente peor que etiquetar incorrectamente las instancias negativas como positivas.

  • Uso de precisión: Los falsos positivos pueden tener graves consecuencias. Por ejemplo, un modelo de clasificación utilizado en el sector financiero identificó erróneamente una transacción como fraudulenta. En situaciones como ésta, la métrica de precisión es importante.
  • Uso de la memoria: Identificar todos los casos positivos puede ser imprescindible. Por ejemplo, que los modelos de clasificación utilizados en el ámbito médico no diagnostiquen correctamente puede ser perjudicial. En situaciones en las que es esencial identificar correctamente todos los casos positivos, la métrica de recuerdo es importante.

Matriz de confusión utilizando Scikit-learn en Python

Para poner esto en perspectiva, vamos a crear una matriz de confusión con Scikit-learn en Python, utilizando un clasificador Random Forest.

El primer paso será importar las bibliotecas necesarias y construir tu conjunto de datos sintéticos.

# Import Libraries
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

# Synthetic Dataset
X, y = make_classification(n_samples=1000, n_features=20,
                           n_classes=2, random_state=42)

# Split into Training and Test Sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

El siguiente paso es entrenar el modelo utilizando un clasificador de bosque aleatorio simple

# Train the Model
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

Como hicimos con el ejemplo práctico, tendremos que clasificar los resultados y convertirlo en una matriz de confusión. Para ello, primero predecimos sobre los datos de prueba y luego generamos una Matriz de Confusión:

# Predict on the Test Data
y_pred = model.predict(X_test)

# Generate the confusion matrix
cm = confusion_matrix(y_test, y_pred)

Ahora queremos generar una representación visual de la matriz de confusión:

# Create a Confusion Matrix
plt.figure(figsize=(8, 8))
sns.heatmap(cm, annot=True, fmt='d', cmap='Greens')
plt.title('Confusion Matrix')
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

Este es el resultado:

Ejemplo de matriz de confusión

Salida de la matriz de confusión del bosque aleatorio

Tada 🎉 ¡Has creado con éxito tu primera Matriz de Confusión utilizando Scikit-learn!

Conclusión

En este artículo, hemos explorado la definición de Matriz de Confusión, la terminología importante que rodea a la herramienta de evaluación, y las limitaciones e importancia de las distintas métricas. Ser capaz de calcular manualmente una Matriz de Confusión es importante para tu base de conocimientos de ciencia de datos, así como ser capaz de ejecutarla utilizando bibliotecas como Scikit-learn.

Si quieres profundizar más en la Matriz de Confusión, practica las matrices de confusión en R con Comprender la Matriz de Confusión en R. Sumérgete un poco más con nuestro curso Validación de Modelos en Python, donde aprenderás los fundamentos de la validación de modelos, las técnicas de validación y empezarás a crear modelos validados y de alto rendimiento.


Nisha Arya Ahmed's photo
Author
Nisha Arya Ahmed
LinkedIn

Aprendiz entusiasta, que busca poner en práctica mis conocimientos técnicos de ciencia de datos y mis sólidas habilidades interpersonales, para mejorar y ampliar mis conocimientos técnicos y mi capacidad de redacción.

Hice la transición al mundo de la Ciencia de Datos desde la Farmacología, cursando un bootcamp de 9 meses con la escuela Lambda. 

Me interesa poner en práctica y mejorar mis habilidades técnicas de codificación y redacción en Aprendizaje Automático e Inteligencia Artificial. ​

Actualmente soy científico de datos y redactor técnico autónomo.

Temas

Más información sobre la matriz de confusión

Certificación disponible

curso

Validación de modelos en Python

4 hr
25K
Aprende los fundamentos de la validación de modelos, las técnicas de validación y empieza a crear modelos validados y de alto rendimiento.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow