Guide de débutant pour les arbres de décision en R

Salut à toi, futur.e data scientist.e ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des arbres de décision en utilisant R. Ne t'inquiète pas si tu n'as jamais codé auparavant - je serai ton guide amical à chaque étape. À la fin de ce tutoriel, tu seras capable de créer tes propres arbres de décision et de te sentir comme un véritable magicien des données !

R - Decision Tree

Qu'est-ce qu'un arbre de décision ?

Avant de plonger dans le code, comprenons ce qu'est un arbre de décision. Imagine que tu essaies de décider si tu dois aller courir ou non. Tu pourrais te poser les questions suivantes :

  1. Pleut-il ?
  2. Ai-je assez de temps ?
  3. Me sens-je énergique ?

Sur la base de tes réponses, tu prends une décision. C'est essentiellement ce qu'un arbre de décision fait - il prend des décisions sur la base d'une série de questions !

Installation des packages nécessaires

Premièrement, nous devons nous équiper des bons outils. En R, ces outils sont appelés packages. Pour notre aventure avec les arbres de décision, nous aurons besoin de deux packages principaux : rpart et rpart.plot.

Installons-les :

install.packages("rpart")
install.packages("rpart.plot")

Maintenant, chargeons ces packages :

library(rpart)
library(rpart.plot)

Félicitations ! Tu viens de faire tes premiers pas en programmation R. Tape-toi sur l'épaule !

Création d'un jeu de données simple

Maintenant que nous avons nos outils prêts, créons un jeu de données simple avec lequel travailler. Imaginons que nous essayons de prédire si quelqu'un va acheter de la glace en fonction de la température et du fait que c'est un week-end ou un jour ouvré.

# Création d'un data frame
ice_cream_data <- data.frame(
temperature = c(68, 85, 72, 90, 60, 78, 82, 75, 68, 71),
is_weekend = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0),
buy_icecream = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0)
)

# Visualisation des données
print(ice_cream_data)

Dans ce jeu de données :

  • temperature est en Fahrenheit
  • is_weekend est 1 pour un week-end, 0 pour un jour ouvré
  • buy_icecream est 1 s'ils ont acheté de la glace, 0 sinon

Construction de notre premier arbre de décision

Passons à la partie passionnante - construisons notre arbre de décision !

# Création du modèle d'arbre de décision
ice_cream_tree <- rpart(buy_icecream ~ temperature + is_weekend,
data = ice_cream_data,
method = "class")

# Tracé de l'arbre
rpart.plot(ice_cream_tree, extra = 106)

Voici ce qui se passe ici :

  1. rpart() est la fonction que nous utilisons pour créer l'arbre de décision.
  2. buy_icecream ~ temperature + is_weekend indique à R que nous voulons prédire buy_icecream en fonction de temperature et is_weekend.
  3. data = ice_cream_data spécifie notre jeu de données.
  4. method = "class" indique à R que nous effectuons une tâche de classification (prédiction d'une catégorie).
  5. rpart.plot() crée une représentation visuelle de notre arbre.

Lorsque tu exécuteras ce code, tu verras un joli diagramme d'arbre. Chaque nœud montre une règle de décision, et les feuilles montrent les prédictions. C'est comme un tableau de bord des décisions de glace !

Compréhension de l'arbre

Interprétons notre arbre de glace :

  1. Le nœud principal (racine) montre le premier fractionnement. Il pourrait être quelque chose comme "temperature < 76".
  2. Si vrai (oui), il va vers le branches gauche ; si faux (non), il va vers la branches droite.
  3. Ce processus continue jusqu'à ce qu'il atteigne un nœud feuille, qui donne la prédiction finale.

Les nombres dans les nœuds représentent :

  • La classe prédite (0 ou 1)
  • La probabilité de cette classe
  • Le pourcentage d'observations dans ce nœud

Faire des prédictions

Maintenant que nous avons notre arbre, utilisons-le pour faire des prédictions !

# Création de nouvelles données
new_data <- data.frame(
temperature = c(70, 95),
is_weekend = c(1, 0)
)

# Faire des prédictions
predictions <- predict(ice_cream_tree, new_data, type = "class")

# Visualisation des prédictions
print(predictions)

Ce code prédit si quelqu'un achètera de la glace lors d'un week-end à 70°F et un jour ouvré à 95°F.

Évaluation du modèle

Pour voir comment notre modèle se comporte, nous pouvons utiliser une matrice de confusion :

# Faire des prédictions sur notre jeu de données original
predictions <- predict(ice_cream_tree, ice_cream_data, type = "class")

# Création de la matrice de confusion
confusion_matrix <- table(Actual = ice_cream_data$buy_icecream, Predicted = predictions)

# Visualisation de la matrice de confusion
print(confusion_matrix)

# Calcul de la précision
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Précision:", accuracy))

Cela nous donne un aperçu rapide du nombre de prédictions correctes et incorrectes.

Conclusion

Félicitations ! Tu viens de construire ton premier arbre de décision en R. De l'installation des packages à la fabrication des prédictions, tu as couvert beaucoup de terrain. Souviens-toi, la pratique rend parfait, donc n'ait pas peur d'expérimenter avec différents jeux de données et paramètres.

Voici un résumé rapide des méthodes que nous avons utilisées :

Méthode Description
install.packages() Installe des packages R
library() Charge des packages installés
data.frame() Crée un data frame
rpart() Construit un arbre de décision
rpart.plot() Visualise l'arbre de décision
predict() Fait des prédictions à l'aide de l'arbre
table() Crée une matrice de confusion

Continue d'explorer, continue d'apprendre, et surtout, amuse-toi avec la science des données !

Credits: Image by storyset