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 | Falso positivo |
no perro | Falso negativo | Verdadero Negativo |
- 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 | Falso negativo |
no perro | Falso positivo | Verdadero Negativo |
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.
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.
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).
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,
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.
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.
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.
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.
Índice | Actual | Predicho | Ciudad | FP | FN |
---|---|---|---|---|---|
1 | Gato | Gato | 1 | 0 | 0 |
2 | Perro | Perro | 1 | 0 | 0 |
3 | Caballo | Perro | 0 | 1 | 1 |
4 | Gato | Gato | 1 | 0 | 0 |
5 | Perro | Perro | 1 | 0 | 0 |
6 | Gato | Gato | 1 | 0 | 0 |
7 | Perro | Perro | 1 | 0 | 0 |
8 | Caballo | Caballo | 1 | 0 | 0 |
9 | Caballo | Caballo | 1 | 0 | 0 |
10 | Gato | Perro | 0 | 1 | 1 |
- 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 | ||
| 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 | ||
| 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).