Arbre de classification d’apprentissage

Machine learning avec des modèles arborescents en Python

Elie Kawerk

Data Scientist

Éléments d'un arbre décisionnel

  • Arbre de décision : structure de données composée d'une hiérarchie de nœuds.

  • Nœud : question ou prédiction.

Machine learning avec des modèles arborescents en Python

Éléments d'un arbre décisionnel

Trois types de nœuds :

  • Racine : nœud sans parent, question donnant lieu à deux nœuds enfants.

  • Nœud interne : un nœud parent, une question donnant lieu à deux nœuds enfants.

  • Feuille : un nœud parent, aucun nœud enfant --> prédiction.

Machine learning avec des modèles arborescents en Python

Prédiction

DT-labeled

Machine learning avec des modèles arborescents en Python

Gain d'information (GI)

IG-diagram

Machine learning avec des modèles arborescents en Python

Gain d'information (GI)

IG-formula

Critères permettant de mesurer l'impureté d'un nœud $I (nœud)$ :

  • indice de Gini,
  • entropie. …
Machine learning avec des modèles arborescents en Python

Arbre de classification d’apprentissage

  • Les nœuds sont développés de manière récursive.

  • À chaque nœud, veuillez diviser les données en fonction des critères suivants :

    • fonctionnalité $f$ et de point de division $sp$ afin de maximiser $IG(\text{node})$.
  • Si $IG (\text{node})$ = 0, déclarez le nœud comme feuille.

Machine learning avec des modèles arborescents en Python
# Import DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier
# Import train_test_split
from sklearn.model_selection import train_test_split
# Import accuracy_score
from sklearn.metrics import accuracy_score
# Split dataset into 80% train, 20% test
X_train, X_test, y_train, y_test= train_test_split(X, y, 
                                                   test_size=0.2, 
                                                   stratify=y,
                                                   random_state=1)
# Instantiate dt, set 'criterion' to 'gini'
dt = DecisionTreeClassifier(criterion='gini', random_state=1)
Machine learning avec des modèles arborescents en Python

Critère d'information dans scikit-learn

# Fit dt to the training set
dt.fit(X_train,y_train)

# Predict test-set labels
y_pred= dt.predict(X_test)

# Evaluate test-set accuracy
accuracy_score(y_test, y_pred)
0.92105263157894735
Machine learning avec des modèles arborescents en Python

Passons à la pratique !

Machine learning avec des modèles arborescents en Python

Preparing Video For Download...