logo

Matriz de confusión en el aprendizaje automático

En aprendizaje automático , la clasificación es el proceso de categorizar un conjunto determinado de datos en diferentes categorías. En el aprendizaje automático, para medir el rendimiento del modelo de clasificación, utilizamos el matriz de confusión . A través de este tutorial, comprenderá el significado de la matriz de confusión.

¿Qué es una matriz de confusión?

A matriz de confusión es una matriz que resume el rendimiento de un modelo de aprendizaje automático en un conjunto de datos de prueba. Es un medio para mostrar el número de casos precisos e inexactos según las predicciones del modelo. A menudo se utiliza para medir el rendimiento de los modelos de clasificación, cuyo objetivo es predecir una etiqueta categórica para cada instancia de entrada.



La matriz muestra el número de instancias producidas por el modelo en los datos de prueba.

  • Verdaderos positivos (TP): ocurren cuando el modelo predice con precisión un punto de datos positivo.
  • Verdaderos negativos (TN) : ocurre cuando el modelo predice con precisión un punto de datos negativo.
  • Falsos positivos (FP) : ocurre cuando el modelo predice incorrectamente un punto de datos positivo.
  • FALSO negativos (FN) : ocurre cuando el modelo predice erróneamente un punto de datos negativo.

¿Por qué necesitamos una Matriz de Confusión?

Al evaluar el desempeño de un modelo de clasificación, una matriz de confusión es esencial. Ofrece un análisis exhaustivo de predicciones verdaderas positivas, verdaderas negativas, falsas positivas y falsas negativas, lo que facilita una comprensión más profunda de las predicciones de un modelo. recuerdo, exactitud, precisión, y eficacia general en la distinción de clases. Cuando hay una distribución de clases desigual en un conjunto de datos, esta matriz es especialmente útil para evaluar el rendimiento de un modelo más allá de las métricas de precisión básicas.

Entendamos la matriz de confusión con los ejemplos:



Matriz de confusión para clasificación binaria

A continuación se muestra una matriz de confusión 2X2 para el reconocimiento de imágenes que tienen una imagen de perro o una imagen que no es de perro.

Actual



Perro

no perro

Predicho

Perro

Verdadero positivo
(TP)

Falso positivo
(FP)

no perro

Falso negativo
(FN)

Verdadero Negativo
(TENNESSE)

  • Verdadero Positivo (TP): Los recuentos totales que tienen valores tanto previstos como reales son Perro.
  • Verdadero Negativo (TN): Los recuentos totales que tienen valores reales y previstos no son perros.
  • Falso Positivo (FP): Son los recuentos totales que tienen la predicción de Perro, mientras que en realidad No es Perro.
  • Falso Negativo (FN): Son los recuentos totales que tienen la predicción No es Perro, mientras que en realidad es Perro.

Ejemplo de problemas de clasificación binaria

Índice

1

2

3

4

5

6

7

8

9

10

Actual

Perro

Perro

Perro

no perro

Perro

no perro

clase vs objeto java

Perro

Perro

no perro

no perro

Predicho

Perro

no perro

Perro

no perro

Perro

Perro

Perro

Perro

llave de inserción del ordenador portátil

no perro

no perro

Resultado

Ciudad

FN

Ciudad

Tennesse

Ciudad

FP

Ciudad

Ciudad

Tennesse

Tennesse

  • Recuentos reales de perros = 6
  • Recuentos reales no de perros = 4
  • Recuentos positivos verdaderos = 5
  • Recuentos de falsos positivos = 1
  • Recuentos verdaderos negativos = 3
  • Recuentos falsos negativos = 1

Predicho

Perro

no perro


Actual

Perro

Verdadero positivo
(TP = 5)

Falso negativo
(FN=1)

no perro

Falso positivo
(PF=1)

Verdadero Negativo
(TN=3)

Métricas basadas en datos de la matriz de confusión

1. Precisión

La precisión se utiliza para medir el rendimiento del modelo. Es la relación entre el total de instancias correctas y el total de instancias.

Accuracy = frac {TP+TN}{TP+TN+FP+FN}

Para el caso anterior:

Precisión = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Precisión

Precisión es una medida de cuán precisas son las predicciones positivas de un modelo. Se define como la relación entre las predicciones positivas verdaderas y el número total de predicciones positivas realizadas por el modelo.

ext{Precision} = frac{TP}{TP+FP}

Para el caso anterior:

Precisión = 5/(5+1) =5/6 = 0,8333

puntos de primavera

3. Recordar

Recordar Mide la efectividad de un modelo de clasificación para identificar todas las instancias relevantes de un conjunto de datos. Es la relación entre el número de casos de verdaderos positivos (TP) y la suma de casos de verdaderos positivos y falsos negativos (FN).

ext{Recall} = frac{TP}{TP+FN}

Para el caso anterior:

Recordar = 5/(5+1) =5/6 = 0,8333

Nota: Usamos la precisión cuando queremos minimizar los falsos positivos, algo crucial en escenarios como la detección de correo electrónico no deseado, donde clasificar erróneamente un mensaje que no es spam como spam es costoso. Y utilizamos el recuerdo cuando minimizar los falsos negativos es esencial, como en los diagnósticos médicos, donde identificar todos los casos positivos reales es fundamental, incluso si da como resultado algunos falsos positivos.

4. Puntuación F1

Puntuación F1 se utiliza para evaluar el rendimiento general de un modelo de clasificación. Es el medio armónico de precisión y recuerdo,

ext{F1-Score} = frac {2 cdot Precision cdot Recall}{Precision + Recall}

Para el caso anterior:

Puntuación F1: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Equilibramos la precisión y la recuperación con la puntuación F1 cuando es necesario un equilibrio entre minimizar los falsos positivos y los falsos negativos, como en los sistemas de recuperación de información.

5. Especificidad:

La especificidad es otra métrica importante en la evaluación de modelos de clasificación, particularmente en clasificación binaria. Mide la capacidad de un modelo para identificar correctamente instancias negativas. La especificidad también se conoce como tasa de verdaderos negativos.

ext{Specificity} = frac{TN}{TN+FP}

Especificidad=3/(1+3)​=3/4=0,75

6. Error tipo 1 y tipo 2

error tipo 1

El error de tipo 1 ocurre cuando el modelo predice una instancia positiva, pero en realidad es negativa. La precisión se ve afectada por los falsos positivos, ya que es la relación entre los verdaderos positivos y la suma de los verdaderos positivos y los falsos positivos.

ext{Type 1 Error} = frac{FP}{TN+FP}

Por ejemplo, en un escenario judicial, un error de tipo 1, a menudo denominado falso positivo, ocurre cuando el tribunal condena por error a una persona como culpable cuando, en realidad, es inocente del presunto delito. Este grave error puede tener consecuencias profundas, llevando al castigo injusto de una persona inocente que no cometió el delito en cuestión. Prevenir los errores de tipo 1 en los procedimientos legales es fundamental para garantizar que se haga justicia con precisión y que las personas inocentes estén protegidas de daños y castigos injustificados.

error tipo 2

El error de tipo 2 ocurre cuando el modelo no logra predecir una instancia positiva. El recuerdo se ve directamente afectado por los falsos negativos, ya que es la relación entre los verdaderos positivos y la suma de los verdaderos positivos y los falsos negativos.

En el contexto de las pruebas médicas, un error tipo 2, a menudo conocido como falso negativo, ocurre cuando una prueba de diagnóstico no logra detectar la presencia de una enfermedad en un paciente que realmente la padece. Las consecuencias de tal error son importantes, ya que puede provocar un retraso en el diagnóstico y el tratamiento posterior.

ext{Type 2 Error} = frac{FN}{TP+FN}

La precisión hace hincapié en minimizar los falsos positivos, mientras que la recuperación se centra en minimizar los falsos negativos.

Implementación de Matriz de confusión para clasificación binaria usando Python

Paso 1: importe las bibliotecas necesarias

Pitón import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt>

Paso 2: cree la matriz NumPy para las etiquetas reales y previstas

Pitón actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])>

Paso 3: Calcular la matriz de confusión

Pitón cm = confusion_matrix(actual,predicted)>

Paso 4: Trazar la matriz de confusión con la ayuda del mapa de calor marino

Pitón cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()>

Producción :

Paso 5: Informe de clasificaciones basado en métricas de confusión

Pitón print(classification_report(actual, predicted))>

Producción :

recuperación de precisión soporte de puntuación f1 Perro 0,83 0,83 0,83 6 No perro 0,75 0,75 0,75 4 precisión 0,80 10 promedio macro 0,79 0,79 0,79 10 promedio ponderado 0,80 0,80 0,80 10

Matriz de confusión para clasificación multiclase

Ahora, consideremos que hay tres clases. A continuación se muestra una matriz de confusión 3X3 para la imagen que tiene tres clases.

Aquí, TP = Verdadero Positivo, FP = Falso Positivo, FN = Falso Negativo.

ÍndiceActualPredichoCiudadFPFN
1GatoGato100
2PerroPerro100
3CaballoPerro011
4GatoGato100
5PerroPerro100
6GatoGato100
7PerroPerro100
8CaballoCaballo100
9CaballoCaballo100
10GatoPerro011
  • Verdaderos Positivos (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Falsos positivos (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Falsos negativos (FN): 2 (0+0+1+0+0+0+0+0+0+1)

A continuación se muestra una matriz de confusión 3X3 para tres clases.

Predicho

Gato

Perro

Caballo


Actual

Gato

Ciudad

FP

FN

Perro

FP

Ciudad

FN

Caballo

FN

FP

Ciudad

Resumen de clase:

  • Para gato: [TP=3,FP=0,FN=1]
    • Índice 1: Verdadero Positivo (Gato real, Gato previsto)
    • Índice 4: Verdadero Positivo (Gato real, Gato previsto)
    • Índice 6: Verdadero Positivo (Gato real, Gato previsto)
    • Índice 10: Falso Negativo (Gato real, Perro previsto)
  • Para perro: [TP=3,FP=2,FN=0]
    • Índice 2: Verdadero Positivo (Perro real, Perro predicho)
    • Índice 5: Verdadero Positivo (Perro real, Perro predicho)
    • Índice 7: Verdadero Positivo (Perro real, Perro predicho)
    • Índice 10: Falso positivo (gato real, perro previsto)
    • Índice 3: Falso positivo (caballo real, perro previsto)
  • Para Caballo: [TP=2,FP=0,FN=1]
    • Índice 8: Verdadero Positivo (Caballo real, Caballo predicho)
    • Índice 9: Verdadero Positivo (Caballo real, Caballo predicho)
    • Índice 3: Falso Negativo (Caballo real, Perro predicho)

Entonces, la matriz de confusión será:

Predicho

Gato

Perro

Caballo


Actual

Gato

TP(3)

PF(1)

FN(0)

Perro

FN(0)

TP(3)

FN(1)

Caballo

cómo actualizar java

FN(1)

PF(1)

TP(2)

Implementación de Matriz de confusión para clasificación binaria usando Python

Paso 1: importe las bibliotecas necesarias

Pitón import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt>

Paso 2: cree la matriz NumPy para las etiquetas reales y previstas

Pitón actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])>

Paso 3: Calcular la matriz de confusión

Pitón cm = confusion_matrix(actual,predicted)>

Paso 4: Trazar la matriz de confusión con la ayuda del mapa de calor marino

Pitón cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()>

Producción:

Paso 5: Informe de clasificaciones basado en métricas de confusión

Pitón print(classification_report(actual, predicted))>

Producción :

recuperación de precisión soporte de puntuación f1 Gato 1,00 0,75 0,86 4 Perro 0,60 1,00 0,75 3 Caballo 1,00 0,67 0,80 3 precisión 0,80 10 promedio macro 0,87 0,81 0,80 10 promedio ponderado 0,88 0,80 0,81 10

Conclusión

En resumen, la matriz de confusión es un instrumento esencial para evaluar la efectividad de los modelos de clasificación. El análisis exhaustivo de las predicciones verdaderas positivas, verdaderas negativas, falsas positivas y falsas negativas que ofrece proporciona información sobre la exactitud, la precisión, la recuperación y la eficacia general de un modelo en la clasificación de instancias. El artículo proporcionó ejemplos para ilustrar el cálculo de cada métrica y analizó su importancia. También demostró cómo se pueden implementar matrices de confusión en Python para escenarios de clasificación binaria y de múltiples clases. Los profesionales pueden tomar decisiones bien informadas con respecto al desempeño del modelo, particularmente cuando se trata de distribuciones de clases desequilibradas, al comprender y aplicar estas métricas.

Preguntas frecuentes sobre la matriz de confusión

P. ¿Cómo interpretar una matriz de confusión?

Una matriz de confusión resume el rendimiento de un modelo de clasificación, con entradas que representan instancias de verdadero positivo, verdadero negativo, falso positivo y falso negativo, lo que proporciona información sobre la precisión y los errores del modelo.

P. ¿Cuáles son las ventajas de utilizar la matriz de confusión?

La matriz de confusión proporciona una evaluación integral del desempeño de un modelo de clasificación, ofreciendo información sobre verdaderos positivos, verdaderos negativos, falsos positivos y falsos negativos, lo que ayuda a un análisis matizado más allá de la precisión básica.

P. ¿Cuáles son algunos ejemplos de aplicaciones de matrices de confusión?

Las matrices de confusión encuentran aplicaciones en diversos campos, incluido el diagnóstico médico (identificación de verdaderos/falsos positivos/negativos de enfermedades), detección de fraude, análisis de sentimientos y evaluación de la precisión del reconocimiento de imágenes.

P. ¿Qué es el diagrama de matriz de confusión?

Un diagrama de matriz de confusión representa visualmente el rendimiento de un modelo de clasificación. Muestra valores verdadero positivo, verdadero negativo, falso positivo y falso negativo en un formato de matriz estructurada.

P. ¿Cuáles son los tres valores de la matriz de confusión?

Los tres valores de la matriz de confusión son verdadero positivo (instancias positivas predichas correctamente), verdadero negativo (instancias negativas predichas correctamente) y falso positivo (instancias positivas predichas incorrectamente).