Visualice el array de confusión con el paquete Caret en R
-
Utilice la función
confusionMatrix
para crear un array de confusión en R -
Utilice la función
cuadruplicado
para visualizar el array de confusión en R -
Utilice la función
autoplot
para visualizar el array de confusión en R
Este artículo demostrará varios métodos para visualizar un array de confusión utilizando el paquete caret
en R.
Utilice la función confusionMatrix
para crear un array de confusión en R
La función confusionMatrix
es parte del paquete caret
y puede crear un array de confusión a partir de los factores o tipos de datos de la tabla. Tenga en cuenta que construimos dos factores aleatorios utilizando las funciones sample
y rep
. confusionMatrix
toma el factor de clases predichas como primer argumento y el factor de clases que se utilizarán como resultados verdaderos como el segundo.
library(caret)
confusionMatrix(
factor(sample(rep(letters[1:4], 200), 50)),
factor(sample(rep(letters[1:4], 200), 50)))
Confusion Matrix and Statistics
Reference
Prediction a b c d
a 2 5 6 2
b 3 2 4 2
c 3 5 2 2
d 5 1 2 4
Overall Statistics
Accuracy : 0.2
95% CI : (0.1003, 0.3372)
No Information Rate : 0.28
P-Value [Acc > NIR] : 0.9260
Kappa : -0.0672
Mcnemar's Test P-Value : 0.7795
Statistics by Class:
Class: a Class: b Class: c Class: d
Sensitivity 0.1538 0.1538 0.1429 0.4000
Specificity 0.6486 0.7568 0.7222 0.8000
Pos Pred Value 0.1333 0.1818 0.1667 0.3333
Neg Pred Value 0.6857 0.7179 0.6842 0.8421
Prevalence 0.2600 0.2600 0.2800 0.2000
Detection Rate 0.0400 0.0400 0.0400 0.0800
Detection Prevalence 0.3000 0.2200 0.2400 0.2400
Balanced Accuracy 0.4012 0.4553 0.4325 0.6000
Utilice la función cuadruplicado
para visualizar el array de confusión en R
La función confusionMatrix
genera los datos textuales, pero podemos visualizar parte de ellos con la ayuda de la función fourfoldplot
. fourfoldplot
construye un gráfico cuádruple con una tabla de contingencia de dos por dos por k
. La tabla de contingencia debe pasarse en forma de array o como un array de 2x2 si k
es igual a 1
. Tenga en cuenta que el siguiente ejemplo demuestra el uso de cuadrícula
con los datos de la tabla codificados.
ctable <- as.table(matrix(c(42, 6, 8, 28), nrow = 2, byrow = TRUE))
fourfoldplot(ctable, color = c("cyan", "pink"),
conf.level = 0, margin = 1, main = "Confusion Matrix")
Por otro lado, podemos almacenar confusionMatrix
como un objeto y pasar el miembro table
de él al fourfoldplot
para visualizar el array de confusión.
library(caret)
cmat <- confusionMatrix(
factor(sample(rep(letters[1:2], 200), 50)),
factor(sample(rep(letters[1:2], 200), 50)))
fourfoldplot(cmat$table, color = c("cyan", "pink"),
conf.level = 0, margin = 1, main = "Confusion Matrix")
Utilice la función autoplot
para visualizar el array de confusión en R
Alternativamente, podemos utilizar la función autoplot
del paquete ggplot2
para mostrar el array de confusión. En este caso, construimos el array con la función conf_mat
que produce un objeto de la clase conf_mat
que se puede pasar directamente como primer argumento a la función autoplot
. Este último determina automáticamente dibujar un gráfico correspondiente para el objeto.
library(yardstick)
library(ggplot2)
set.seed(123)
truth_predicted <- data.frame(
obs = sample(0:1,100, replace = T),
pred = sample(0:1,100, replace = T)
)
truth_predicted$obs <- as.factor(truth_predicted$obs)
truth_predicted$pred <- as.factor(truth_predicted$pred)
cm <- conf_mat(truth_predicted, obs, pred)
autoplot(cm, type = "heatmap") +
scale_fill_gradient(low = "pink", high = "cyan")
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook