Visualisieren Sie die Verwirrungsmatrix mit dem Caret-Paket in R

Jinku Hu 15 Februar 2024
  1. Verwenden Sie die Funktion confusionMatrix, um eine Konfusionsmatrix in R . zu erstellen
  2. Verwenden Sie die Funktion fourfoldplot, um die Konfusionsmatrix in R . zu visualisieren
  3. Verwenden Sie die Funktion autoplot, um die Verwirrungsmatrix in R . zu visualisieren
Visualisieren Sie die Verwirrungsmatrix mit dem Caret-Paket in R

Dieser Artikel zeigt mehrere Methoden zur Visualisierung einer Konfusionsmatrix mit dem Paket caret in R.

Verwenden Sie die Funktion confusionMatrix, um eine Konfusionsmatrix in R . zu erstellen

Die Funktion confusionMatrix ist Bestandteil des Pakets caret und kann aus den Faktoren oder Tabellendatentypen eine Konfusionsmatrix erstellen. Beachten Sie, dass wir zwei Zufallsfaktoren mit den Funktionen sample und rep konstruieren. confusionMatrix nimmt als erstes Argument den Faktor der vorhergesagten Klassen und als zweites den Faktor der als wahre Ergebnisse zu verwendenden Klassen.

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

Verwenden Sie die Funktion fourfoldplot, um die Konfusionsmatrix in R . zu visualisieren

Die Funktion confusionMatrix gibt die Textdaten aus, aber wir können den Teil davon mit Hilfe der Funktion fourfoldplot visualisieren. fourfoldplot konstruiert einen vierfachen Graphen mit zwei mal zwei mal k Kontingenztabelle. Die Kontingenztabelle sollte in Arrayform oder als 2x2-Matrix übergeben werden, wenn k gleich 1 ist. Beachten Sie, dass das folgende Beispiel die Verwendung von fourfoldplot mit den hartcodierten Tabellendaten demonstriert.

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")

Verwirrungsmatrix visualisieren 1

Andererseits können wir confusionMatrix als Objekt speichern und das Element table daraus an den fourfoldplot übergeben, um die Konfusionsmatrix zu visualisieren.

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")

Verwirrungsmatrix visualisieren 2

Verwenden Sie die Funktion autoplot, um die Verwirrungsmatrix in R . zu visualisieren

Alternativ können wir die Funktion autoplot aus dem Paket ggplot2 verwenden, um die Konfusionsmatrix anzuzeigen. In diesem Fall konstruieren wir die Matrix mit der Funktion conf_mat, die ein Objekt der Klasse conf_mat erzeugt, das direkt als erstes Argument an die Funktion autoplot übergeben werden kann. Letzterer bestimmt automatisch, einen entsprechenden Graphen für das Objekt zu zeichnen.

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")

Verwirrungsmatrix visualisieren 3

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - R Matrix