Visualizza la matrice di confusione utilizzando il pacchetto Caret in R
-
Usa la funzione
confusionMatrix
per creare una matrice di confusione in R -
Usa la funzione
fourfoldplot
per visualizzare la matrice di confusione in R -
Usa la funzione
autoplot
per visualizzare la matrice di confusione in R
Questo articolo dimostrerà diversi metodi per visualizzare una matrice di confusione utilizzando il pacchetto caret
in R.
Usa la funzione confusionMatrix
per creare una matrice di confusione in R
La funzione confusionMatrix
fa parte del pacchetto caret
e può creare una matrice di confusione dai fattori o dai tipi di dati della tabella. Nota che costruiamo due fattori casuali usando le funzioni sample
e rep
. confusionMatrix
prende il fattore delle classi previste come primo argomento e il fattore delle classi da utilizzare come risultati veri come secondo.
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
Usa la funzione fourfoldplot
per visualizzare la matrice di confusione in R
La funzione confusionMatrix
emette i dati testuali, ma possiamo visualizzarne una parte con l’aiuto della funzione fourfoldplot
. fourfoldplot
costruisce un grafico quadruplo con due a due per k
tabella di contingenza. La tabella di contingenza dovrebbe essere passata sotto forma di array o come matrice 2x2 se k
è uguale a 1
. Si noti che l’esempio seguente mostra l’utilizzo di fourfoldplot
con i dati della tabella hardcoded.
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")
D’altra parte, possiamo memorizzare confusionMatrix
come oggetto e passare il membro table
da esso al fourfoldplot
per visualizzare la matrice di confusione.
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")
Usa la funzione autoplot
per visualizzare la matrice di confusione in R
In alternativa, possiamo utilizzare la funzione autoplot
del pacchetto ggplot2
per visualizzare la matrice di confusione. In questo caso, costruiamo la matrice con la funzione conf_mat
che produce un oggetto della classe conf_mat
che può essere passato direttamente come primo argomento alla funzione autoplot
. Quest’ultimo determina automaticamente di disegnare un grafico corrispondente per l’oggetto.
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