TP_Apprentissage Supervisé (LR & DT) PDF

Document Details

ProficientCopper

Uploaded by ProficientCopper

SAWADOGO Florian Landry Rakis

Tags

logistic regression decision tree supervised learning machine learning

Summary

This document provides a practical guide to supervised learning techniques, focusing on logistic regression and decision trees. It outlines the underlying concepts, step-by-step procedures using R, and how models can predict outcomes.

Full Transcript

Apprentissage Supervisée – Logistic Regression & Decision Tree: Travaux Pratiques Enseignant : SAWADOGO Florian Landry Rakis Régression logistique En rappel, La régression logistique utilise une méthode connue sous le nom d’estimation du maximum de vraisemblance pour trouver une équation de l...

Apprentissage Supervisée – Logistic Regression & Decision Tree: Travaux Pratiques Enseignant : SAWADOGO Florian Landry Rakis Régression logistique En rappel, La régression logistique utilise une méthode connue sous le nom d’estimation du maximum de vraisemblance pour trouver une équation de la forme suivante : log[p(X) / (1-p(X))] = β0 + β1X1 + β2X2 + … + βpXp où:  Xj: Le jième Variable prédictive  βj: L’estimation du coefficient pour le jième Variable prédictive La formule du membre droit de l’équation prédit les probabilités logarithmiques de la variable de réponse prenant une valeur de 1. Ainsi, lorsque nous ajustons un modèle de régression logistique, nous pouvons utiliser l’équation suivante pour calculer la probabilité qu’une observation donnée prenne une valeur de 1 : p(X) = eβ0 + β1X1 + β2X2 + … + βpXp / (1 + eβ0 + β1X1 + β2X2 + … + βpXp) Nous utilisons ensuite un seuil de probabilité pour classer l’observation comme 1 ou 0. Par exemple, nous pourrions dire que les observations dont la probabilité est supérieure ou égale à 0,5 seront classées comme « 1 » et toutes les autres observations seront classées comme « 0 ». Régression logistique dans R en 04 étapes Etape 1 : Chargez les données Pour cet exemple, nous allons utiliser le jeu de données par défaut du package ISLR. Nous pouvons utiliser le code suivant pour charger et afficher un résumé de l’ensemble de données : Cet ensemble de données contient les informations suivantes sur 10 000 personnes :  faire défaut: Indique si une personne a fait défaut ou non.  étudiant: Indique si une personne est un étudiant ou non.  balance: Solde moyen porté par un individu.  revenu: Revenu de l’individu. Nous utiliserons le statut d’étudiant, le solde bancaire et le revenu pour construire un modèle de régression logistique qui prédit la probabilité qu’un individu donné fasse défaut. Etape 2 : Créer des échantillons d’entraînement et de test Ensuite, nous allons diviser l’ensemble de données en un ensemble d’entraînement pour entraîner le modèle et un ensemble de test pour tester le modèle. Etape 3 : Ajuster le modèle de régression logistique Ensuite, nous allons utiliser la fonction glm (modèle linéaire général) et spécifier family="binomial » afin que R ajuste un modèle de régression logistique à l’ensemble de données : Les coefficients de la sortie indiquent la variation moyenne du logarithme des chances de défaut de paiement. Par exemple, une augmentation d’une unité du solde est associée à une augmentation moyenne de 0,005988 du logarithme des chances de défaut. Les valeurs p dans la sortie nous donnent également une idée de l’efficacité de chaque variable prédictive pour prédire la probabilité de défaut :  Valeur P du statut d’étudiant : 0,0843  Valeur p du solde : 0,0000 <  Valeur P du revenu : 0,4304 Nous pouvons voir que l’équilibre et le statut d’étudiant semblent être des prédicteurs importants puisqu’ils ont de faibles valeurs p alors que le revenu n’est pas aussi important. Etape 4 : Utiliser le modèle pour faire des prédictions Une fois que nous avons ajusté le modèle de régression logistique, nous pouvons l’utiliser pour faire des prédictions sur le fait qu’un individu sera par défaut en fonction de son statut d’étudiant, de son solde et de son revenu : La probabilité qu’une personne ayant un solde de 1 400 $, un revenu de 2 000 $ et un statut d’étudiant « Oui » ait une probabilité de défaut de paiement de 0,0273. À l’inverse, une personne ayant le même solde et le même revenu, mais dont le statut d’étudiant est « Non » a une probabilité de défaut de paiement de 0,0439. Nous pouvons utiliser le code suivant pour calculer la probabilité de défaut pour chaque individu de notre ensemble de données de test : Etape 5 : Diagnostic du modèle Nous pouvons à ce stade analyser les performances de notre modèle sur l’ensemble de données de test. Par défaut, tout individu dans l’ensemble de données de test avec une probabilité de défaut supérieure à 0,5 sera prédit par défaut. Cependant, nous pouvons trouver la probabilité optimale à utiliser pour maximiser la précision de notre modèle en utilisant la fonction optimalCutoff() du package InformationValue: Cela nous indique que le seuil de probabilité optimale à utiliser est de 0,5451712. Ainsi, tout individu avec une probabilité de défaut de 0,5451712 ou plus sera prédit en défaut, tandis que tout individu avec une probabilité inférieure à ce nombre sera prédit comme ne faisant pas défaut. En utilisant ce seuil, nous pouvons créer une matrice de confusion qui montre nos prédictions par rapport aux valeurs par défaut réelles : Nous pouvons également calculer la sensibilité (également connue sous le nom de « taux de vrais positifs ») et la spécificité (également connue sous le nom de « taux de vrais négatifs ») ainsi que l’erreur totale de mauvaise classification (qui nous indique le pourcentage du total des classifications incorrectes) : Le taux total d’erreur de classification est de 2,7 % pour ce modèle. En général, plus ce taux est faible, mieux le modèle est capable de prédire les résultats, de sorte que ce modèle particulier s’avère très bon pour prédire si un individu fera défaut ou non. Enfin, nous pouvons tracer la courbe ROC (Receiver Operating Characteristic) qui affiche le pourcentage de vrais positifs prédits par le modèle lorsque le seuil de probabilité de prédiction est abaissé de 1 à 0. Plus l’AUC (aire sous la courbe) est élevée, plus notre modèle est capable de prédire avec précision les résultats : Nous pouvons voir que l’AUC est de 0,9131 (91,31%), ce qui est assez élevé. Cela indique que notre modèle fait un bon travail pour prédire si un individu fera défaut ou non. Arbres de décisions En rappel, les arbres de classification et de régression (CART) sont un algorithme d’apprentissage supervisé qui utilisent un ensemble de variables prédictives pour construire des arbres de décision qui prédisent la valeur d’une variable de réponse. Si la variable de réponse est continue, nous pouvons construire des arbres de régression et si la variable de réponse est catégorielle, nous pouvons construire des arbres de classification. Cas 1 : Construire un arbre de régression dans R en 04 étapes Pour ce premier cas, nous allons utiliser le jeu de données Hitters du package ISLR, qui contient diverses informations sur 263 joueurs de baseball professionnels. Nous allons utiliser cet ensemble de données pour construire un arbre de régression qui utilise les variables prédictives coups de circuit et années jouées pour prédire le salaire d’un joueur donné. On procède donc comme suit, pour créer cet arbre de régression. Etape 1 : Les packages nécessaires library(ISLR) #contains Hitters dataset library(rpart) #for fitting decision trees library(rpart.plot) #for plotting decision trees data ("Hitters") Etape 2 : Générez l’arbre de régression initial Tout d’abord, nous allons créer un grand arbre de régression initial. Nous pouvons nous assurer que l’arbre est grand en utilisant une petite valeur pour cp, qui signifie « paramètre de complexité ». Cela signifie que nous effectuerons de nouveaux fractionnements sur l’arbre de régression tant que le R carré global du modèle augmente d’au moins la valeur spécifiée par cp. Nous utiliserons ensuite la fonction printcp() pour afficher les résultats du modèle: Etape 3 : Taillez l’arbre A présent, nous élaguerons l’arbre de régression pour trouver la valeur optimale à utiliser pour cp (le paramètre de complexité) qui conduit à l’erreur de test la plus faible. Notez que la valeur optimale pour cp est celle qui conduit à la plus faible xerror dans la sortie précédente, qui représente l’erreur sur les observations à partir des données de validation croisée. Nous pouvons voir que l’arbre élagué final a six nœuds terminaux. Chaque nœud terminal affiche le salaire prévu des joueurs dans ce nœud ainsi que le nombre d’observations de l’ensemble de données d’origine qui appartiennent à cette note. Par exemple, nous pouvons voir que dans l’ensemble de données original, il y avait 90 joueurs avec moins de 4,5 ans d’expérience et leur salaire moyen était de 225,83 k$. Etape 4 : Utilisez l’arbre pour faire des prédictions Nous pouvons utiliser l’arbre final élagué pour prédire le salaire d’un joueur donné en fonction de ses années d’expérience et de ses coups de circuit moyens. Par exemple, un joueur qui a 7 ans d’expérience et 4 coups de circuit moyens a un salaire prédit de 502,81 k$. Nous pouvons alors utiliser la fonction predict() dans R pour confirmer cela : Cas 2 : Construire un arbre de classification dans R en 04 étapes Pour ce second cas, nous allons utiliser l’ensemble de données ptitanic du package rpart.plot, qui contient diverses informations sur les passagers à bord du Titanic. Nous utiliserons cet ensemble de données pour construire un arbre de classification qui utilise les variables prédictives classe, sexe et âge pour prédire si un passager donné a survécu ou non. On procède donc comme suit, pour créer cet arbre de régression. Etape 1 : Les packages nécessaires library(rpart) #for fitting decision trees library(rpart.plot) #for plotting decision trees and the dataset data ("ptitanic") Etape 2 : Construire l’arborescence de classification initiale Tout d’abord, nous allons construire un grand arbre de classification initial. Nous pouvons nous assurer que l’arbre est grand en utilisant une petite valeur pour cp, qui signifie « paramètre de complexité ». Cela signifie que nous effectuerons de nouvelles divisions sur l’arbre de classification tant que l’ajustement global du modèle augmente d’au moins la valeur spécifiée par cp. Nous utiliserons ensuite la fonction printcp() pour afficher les résultats du modèle: Etape 3 : Taillez l’arbre Ensuite, nous allons élaguer l’arbre de régression pour trouver la valeur optimale à utiliser pour cp (le paramètre de complexité) qui conduit à l’erreur de test la plus faible. Notez que la valeur optimale pour cp est celle qui conduit à la plus faible xerror dans la sortie précédente, qui représente l’erreur sur les observations à partir des données de validation croisée. Nous pouvons voir que l’arbre final élagué a 10 nœuds terminaux. Chaque nœud terminal indique le nombre de passagers décédés ainsi que le nombre de survivants. Par exemple, dans le nœud le plus à gauche, nous voyons que 664 passagers sont morts et 136 ont survécu. Étape 4 : Utilisez l’arbre pour faire des prédictions Nous pouvons utiliser l’arbre élagué final pour prédire la probabilité qu’un passager donné survive en fonction de sa classe, de son âge et de son sexe. Par exemple, un passager masculin qui est en 1ère classe et qui a 8 ans a une probabilité de survie de 11/29 = 37,9%.

Use Quizgecko on...
Browser
Browser