Arbres de décision
Fonctions :
-
DecisionTreeClassifier()
La fonction DecisionTreeClassifier() permet de créer un modèle de classification basé sur un arbre de décision. Un arbre de décision est une structure arborescente où chaque nœud représente une décision ou une question, et chaque branche représente une réponse possible. L'algorithme divise les données de manière récursive en fonction des caractéristiques pour créer un modèle de classification.
Importation :
from sklearn.tree import DecisionTreeClassifier
Attributs :
Paramètre
Description
criterion
La fonction de mesure de la qualité de la division des nœuds. Les options sont : 'gini'
pour l'indice de Gini (par défaut) ou'entropy'
pour l'entropie de Shannon.splitter
La stratégie utilisée pour diviser les nœuds. Les options sont : 'best'
(pour la meilleure division),'random'
(pour la division aléatoire).max_depth
La profondeur maximale de l'arbre. Si None
, l'arbre est développé jusqu'à ce que chaque feuille contienne moins demin_samples_split
échantillons.min_samples_split
Le nombre minimum d'échantillons requis pour diviser un nœud. Par défaut, 2
.min_samples_leaf
Le nombre minimum d'échantillons dans une feuille. Par défaut, 1
.max_features
Le nombre maximum de caractéristiques à prendre en compte lors de la recherche de la meilleure division. Les options sont : None
(toutes les caractéristiques sont considérées),int
(un nombre fixe de caractéristiques),'sqrt'
(la racine carrée du nombre total de caractéristiques),'log2'
(le logarithme en base 2 du nombre de caractéristiques).random_state
Un entier ou un objet `RandomState` pour contrôler la reproductibilité des résultats (par exemple, pour la sélection aléatoire de caractéristiques ou la division des données). Par défaut, c'est None
.max_leaf_nodes
Le nombre maximal de nœuds de feuille. Si spécifié, l'arbre est limité à ce nombre de feuilles. class_weight
Poids associés aux classes. Cela permet de pondérer certaines classes pour qu'elles soient mieux représentées lors de la construction de l'arbre. min_impurity_decrease
Le seuil d'impureté pour qu'une division soit effectuée. Si la réduction de l'impureté est inférieure à ce seuil, la division est abandonnée. Exemple de code :
# Importation du DecisionTreeClassifier from sklearn.tree import DecisionTreeClassifier # Création du modèle d'arbre de décision avec l'indice de Gini model = DecisionTreeClassifier(criterion='gini', max_depth=3) # Exemple de données d'entrée (X) et labels associés (y) X = [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]] y = [0, 1, 1, 0, 1] # Entraînement du modèle sur les données model.fit(X, y) # Prédiction des classes pour de nouvelles données predictions = model.predict([[1.5, 1.5]]) # Affichage des résultats print(predictions)
Explication du code :
from sklearn.tree import DecisionTreeClassifier
importe la classe DecisionTreeClassifier du modulesklearn.tree
, utilisée pour créer un modèle de classification basé sur un arbre de décision.Création du modèle d’arbre de décision
model = DecisionTreeClassifier(criterion='gini', max_depth=3)
crée un modèle d’arbre de décision avec les paramètres suivants :criterion='gini'
: l’algorithme utilise l’indice de Gini pour mesurer l’impureté des nœuds (et décider des divisions).max_depth=3
: limite la profondeur maximale de l’arbre à 3 niveaux afin d’éviter un surapprentissage (overfitting).Données d’entrée
X = [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]]
contient les échantillons d’entrée, chacun ayant deux caractéristiques (x₁, x₂).y = [0, 1, 1, 0, 1]
fournit les classes (ou étiquettes) associées à chaque échantillon. Les classes sont ici binaires : 0 ou 1.Entraînement du modèle
model.fit(X, y)
entraîne l’arbre de décision en apprenant des règles de séparation à partir des donnéesX
et des classesy
. L’arbre construit des conditions hiérarchiques pour classer les exemples.Prédiction sur de nouvelles données
predictions = model.predict([[1.5, 1.5]])
applique les règles de l’arbre pour prédire la classe du point[1.5, 1.5]
en descendant dans l’arbre jusqu’à une feuille terminale.Affichage des résultats
print(predictions)
affiche la classe prédite (0 ou 1) pour le point[1.5, 1.5]
selon les règles apprises par l’arbre.