Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment créer une matrice de confusion dans R (étape par étape)



La régression logistique est un type de régression que nous pouvons utiliser lorsque la variable de réponse est binaire.

Une façon courante d’évaluer la qualité d’un modèle de régression logistique consiste à créer une matrice de confusion , qui est un tableau 2 × 2 qui montre les valeurs prédites du modèle par rapport aux valeurs réelles de l’ensemble de données de test.

L’exemple suivant, étape par étape, montre comment créer une matrice de confusion dans R.

Étape 1 : Ajuster le modèle de régression logistique

Pour cet exemple, nous utiliserons l’ensemble de données par défaut du package ISLR . Nous utiliserons le statut d’étudiant, le solde bancaire et le revenu annuel pour prédire la probabilité qu’une personne donnée ne rembourse pas son prêt.

Le code suivant montre comment adapter un modèle de régression logistique à cet ensemble de données :

#load necessary packages
library(caret)
library(InformationValue)
library(ISLR)

#load dataset
data <- Default

#split dataset into training and testing set
set.seed(1)
sample <- sample(c(TRUE, FALSE), nrow(data), replace=TRUE, prob=c(0.7,0.3))
train <- data[sample, ]
test <- data[!sample, ]

#fit logistic regression model
model <- glm(default~student+balance+income, family="binomial", data=train)

Étape 2 : Créer la matrice de confusion

Ensuite, nous utiliserons la fonction confusionMatrix() du package caret pour créer une matrice de confusion :

#use model to predict probability of default
predicted <- predict(model, test, type="response")

#convert defaults from "Yes" and "No" to 1's and 0's
test$default <- ifelse(test$default=="Yes", 1, 0)

#find optimal cutoff probability to use to maximize accuracy
optimal <- optimalCutoff(test$default, predicted)[1]

#create confusion matrix
confusionMatrix(test$default, predicted)

     0  1
0 2912 64
1   21 39

Étape 3 : Évaluer la matrice de confusion

Nous pouvons également calculer les métriques suivantes à l’aide de la matrice de confusion :

  • Sensibilité : Le « vrai taux de positivité » – le pourcentage d’individus dont le modèle a correctement prédit qu’ils feraient défaut.
  • Spécificité : Le « vrai taux négatif » – le pourcentage d’individus que le modèle a correctement prédit ne feraient pas défaut.
  • Taux total de classification incorrecte : pourcentage du total de classifications incorrectes effectuées par le modèle.

Le code suivant montre comment calculer ces métriques :

#calculate sensitivity
sensitivity(test$default, predicted)

[1] 0.3786408

#calculate specificity
specificity(test$default, predicted)

[1] 0.9928401

#calculate total misclassification error rate
misClassError(test$default, predicted, threshold=optimal)

[1] 0.027

Le taux d’erreur total de classification est de 2,7 % pour ce modèle.

En général, plus ce taux est faible, plus le modèle est capable de prédire les résultats. Ce modèle particulier s’avère donc très efficace pour prédire si un individu fera défaut ou non.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *