Matriz de confusión en R: cómo hacer y calcular [con ejemplos]

Publicado: 2021-03-09

R se ha convertido en uno de los principales paquetes de software para datos y análisis estadístico en la actualidad. Es un entorno de código abierto preferido por sus sólidas capacidades informáticas, visuales y gráficas. Si es un estudiante de ingeniería, un profesional de análisis de negocios o alguien con un gran interés en la ciencia de datos, aprender el lenguaje de programación R puede ayudarlo de muchas maneras.

En este artículo, cubriremos algunos conceptos básicos del aprendizaje automático a través de esta suite integrada. Más específicamente, discutiremos cómo calcular una matriz de confusión en R .

Pero antes de pasar a los tecnicismos, primero comprendamos por qué hemos elegido R para este propósito. Es debido a los siguientes beneficios que este lenguaje de programación está ganando popularidad entre los estadísticos y científicos de datos de todo el mundo:

  • Reproducible: con R, puede reproducir informes y escribir código reutilizable
  • Compartible: tiene una curva de aprendizaje baja, lo que abre vías para la colaboración
  • Repetible: cualquiera no solo puede entender lo que hizo, sino también repetir los pasos para crear las mismas funciones en sus máquinas.

El uso del lenguaje R en el campo del aprendizaje automático también ha aumentado debido a las razones anteriores. No es necesario ser un programador experto para entender su sintaxis. Y así, le presentamos algunos fundamentos en la siguiente sección.

Tabla de contenido

¿Qué es una matriz de confusión?

Una matriz de confusión, o matriz de error, se ocupa del problema de clasificación estándar en estadística. Comprende un diseño de tabla específico que facilita a los analistas de datos visualizar cómo funciona un algoritmo. Esto se aplica particularmente a los algoritmos de aprendizaje supervisado.

Para elaborar más, una matriz de confusión sigue un formato N x N, donde N se refiere al número de clases de destino. Puede utilizar esta tabla o matriz para evaluar el rendimiento de un modelo de clasificación. Esto es posible porque la matriz compara los valores pronosticados con los valores objetivo.

En pocas palabras, puede describir cómo funciona su modelo de aprendizaje automático, un clasificador, en este caso, en un conjunto de datos de prueba (para los cuales ya tiene los valores reales).

Para comprender este método, debe estar familiarizado con los siguientes términos:

  • Verdadero positivo (TP): los valores positivos se predicen correctamente
  • Falso positivo (FP): los valores negativos se predicen incorrectamente como positivos
  • Falso negativo (FN): valores positivos predichos como negativos
  • True Negative (TN): valores negativos predichos como valores negativos reales

Veamos algunos ejemplos para ganar más claridad.

Ejemplos de matrices de confusión

  • Verdadero Positivo

Cuando habías pronosticado que India ganaría la Copa Mundial de Cricket, y ganó.

  • Falso positivo

Cuando esperabas que India ganara, pero perdió.

  • Falso negativo

Cuando habías pronosticado que Francia no ganaría, pero ganó.

  • verdadero negativo

Cuando proyectó que India 'no ganaría' la copa mundial de Cricket y perdió la serie en la vida real.

A medida que avanzamos, debe recordar que todos los valores predichos se describen como: Positivo, Negativo, Verdadero y Falso.

¿Cómo calcular la matriz de confusión en R?

Considere un escenario en el que tenga una lista de valores esperados o conocidos y otra lista de predicciones de su modelo de aprendizaje automático. En R, puede calcular la matriz de confusión usando una función simple de la biblioteca de intercalación: confusionMatrix(). No solo puede calcular la matriz, sino también devolver un informe detallado de los resultados.

Puede seguir los pasos mencionados a continuación para practicar el proceso de minería de datos:

  • Pruebe el conjunto de datos dado con los resultados esperados.
  • Prediga las filas de su conjunto de datos de prueba.
  • Determine los recuentos totales de predicciones correctas e incorrectas para cada clase.

Una vez que haya hecho esto, encontrará los números organizados de la siguiente manera:

  • Cada fila de la matriz se corresponderá con una clase predicha y cada columna estará vinculada a una clase real.
  • El número total de clasificaciones correctas e incorrectas se refleja en la tabla, junto con las sumas para cada clase.

Suponga que tiene 10 personas divididas en dos clases, hombres y mujeres. Tienes que ordenar la información como una matriz de confusión cuando sabes que 2 hombres fueron clasificados como mujeres, mientras que 1 mujer fue clasificada como hombre.

mujeres hombres

mujeres 3 1

hombres 2 4

Aquí, los valores correctos están organizados en una línea diagonal desde la parte superior izquierda hasta la parte inferior derecha de la matriz (3 + 4). Los resultados nos dicen que hay más errores al predecir miembros masculinos como mujeres que al predecir mujeres como hombres. El algoritmo hizo 7 predicciones correctas de 10 resultados posibles, lo que significa que tiene una precisión del 70 %.

Guía para hacer y calcular una matriz de confusión en R

Como puede observar, la función de matriz de confusión es una herramienta útil para examinar los posibles resultados de sus predicciones. Entonces, antes de comenzar a crear su matriz, primero debe tener un "corte" de sus valores de probabilidad. En otras palabras, debe marcar un umbral para convertir sus probabilidades en predicciones de clase.

Para hacer esto, puede usar la función ifelse(). Por ejemplo:

clase_predicción <-

ifelse (probability_prediction > 0.50,

“clase_positiva”,

"clase_negativa"

)

También puede escribir la función table() para hacer una tabla de contingencia en base R. Sin embargo, se sabe que la función confusionMatrix() produce valiosas estadísticas auxiliares.

El siguiente paso es calcular la matriz de confusión y otras estadísticas asociadas. Aquí, necesitaría los resultados previstos y reales. Tomemos, por ejemplo, la declaración dada a continuación:

confusionMatrix (predicho, real)

Ahora, debe proceder a convertir sus predicciones numéricas en un vector de predicciones de clase, sat p_class. Suponga que desea utilizar un límite de 0,50.

Además, al hacer predicciones, no olvide nombrar las clases positivas y negativas con indicadores separados. Llamemos a las clases positivas "T" ya las negativas como "L". Esto se hace para hacer coincidir las clases con los datos originales.

Ahora que tiene una p_class y valores reales en el conjunto de datos de prueba, puede comenzar a crear su matriz de confusión llamando a la función confusionMatrix().

Alternativamente, es posible que desee estar seguro de la precisión de su modelo de minería de datos. En tales casos, es recomendable utilizar un umbral de 0,10, no 0,90. a partir de entonces, puede continuar con los mismos pasos que hizo en el ejercicio anterior.

Con sus nuevas clases previstas, puede repetir esta llamada:

pred <- ifelse(probabilidad > umbral, “T”, “L”)

Finalmente, puede usar la función confusionMatrix() en caret:

confusionMatrix (predicho, real)

Con esto, concluimos este tutorial sobre la función de matriz de confusión para el aprendizaje automático en R. ¡Espero que lo haya encontrado útil!

Conclusión

Si tiene curiosidad por aprender sobre R, ciencia de datos, consulte nuestro Diploma PG en ciencia de datos, creado para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos, tutoría con expertos de la industria, 1-on- 1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.

¿Cuál es la necesidad de crear una matriz de confusión?

Las siguientes razones nos presentan los beneficios de tener una matriz de confusión y cómo trata los problemas de rendimiento.
1. La matriz de confusión es necesaria para erradicar el problema con precisión de clasificación. La relación de clasificación a menudo causa algunos problemas al ocultar los detalles necesarios del modelo.
2. La matriz de confusión da una idea de las predicciones y el tipo de errores cometidos en el modelo de clasificación. Las predicciones correctas y defectuosas se presentan de forma resumida.
3. Los errores y sus tipos se clasifican para que pueda comprender el rendimiento de su modelo.

¿Cómo calcular la matriz de confusión en R?

La matriz de confusión en R se puede calcular usando la función "confusionMatrix()" de la biblioteca caret. Esta función no solo calcula la matriz, sino que también devuelve un informe detallado de la matriz. Debes seguir algunos pasos para calcular tu matriz de confusión.
1. Pruebe su conjunto de datos.
2. Prediga su número total de filas.
3. Prediga el total de predicciones correctas e incorrectas para cada clase.
Una vez que haya extraído sus datos, obtendrá los números organizados en filas. Las filas se conectarán a la clase predicha mientras que las columnas se conectarán a la clase real. Los valores correctos estarán en una línea diagonal. Sume todos los valores y obtendrá el porcentaje de precisión de su matriz.

¿Cómo medir el desempeño en una matriz de confusión?

Puede calcular la tasa de precisión de un modelo utilizando una matriz de confusión de 2x2. La siguiente fórmula le dará la tasa de éxito o la tasa de precisión:
Precisión = (TP+TN)/(TP+TN+FP+FN)
Donde, TP = Verdadero Positivo, TN = Verdadero Negativo, FP = Falso Positivo, FN = Falso Negativo
La tasa de error de su modelo también se puede calcular con la fórmula de cálculo de tasa que es:
Precisión = (TP+TN)/(TP+TN+FP+FN) = 1-Precisión
El concepto de la tasa de error es muy simple. Supongamos que su modelo tiene una tasa de precisión del 80 %, entonces la tasa de error de su modelo será del 20 %.