Visualiser la matrice de confusion à l'aide du package Caret dans R

Jinku Hu 30 janvier 2023
  1. Utilisez la fonction confusionMatrix pour créer une matrice de confusion dans R
  2. Utilisez la fonction fourfoldplot pour visualiser la matrice de confusion dans R
  3. Utilisez la fonction autoplot pour visualiser la matrice de confusion dans R
Visualiser la matrice de confusion à l'aide du package Caret dans R

Cet article démontrera plusieurs méthodes de visualisation d’une matrice de confusion en utilisant le package caret dans R.

Utilisez la fonction confusionMatrix pour créer une matrice de confusion dans R

La fonction confusionMatrix fait partie du package caret et peut créer une matrice de confusion à partir des facteurs ou des types de données de table. Notez que nous construisons deux facteurs aléatoires à l’aide des fonctions sample et rep. confusionMatrix prend le facteur des classes prédites comme premier argument et le facteur des classes à utiliser comme vrais résultats comme second.

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

Utilisez la fonction fourfoldplot pour visualiser la matrice de confusion dans R

La fonction confusionMatrix sort les données textuelles, mais on peut en visualiser une partie à l’aide de la fonction fourfoldplot. fourfoldplot construit un graphique quadruple avec un tableau de contingence deux par deux par k. Le tableau de contingence doit être transmis sous forme de tableau ou sous forme de matrice 2x2 si k est égal à 1. Notez que l’exemple suivant montre l’utilisation de fourfoldplot avec les données de table codées en dur.

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

visualiser la matrice de confusion 1

D’un autre côté, nous pouvons stocker confusionMatrix en tant qu’objet et passer le membre table de celui-ci au fourfoldplot pour visualiser la matrice de confusion.

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

visualiser la matrice de confusion 2

Utilisez la fonction autoplot pour visualiser la matrice de confusion dans R

Alternativement, nous pouvons utiliser la fonction autoplot du package ggplot2 pour afficher la matrice de confusion. Dans ce cas, nous construisons la matrice avec la fonction conf_mat qui produit un objet de la classe conf_mat qui peut être directement passé en premier argument à la fonction autoplot. Ce dernier décide automatiquement de tracer un graphe correspondant pour l’objet.

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

visualiser la matrice de confusion 3

Auteur: 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

Article connexe - R Matrix