Apprentissage par arbre de classification

Machine Learning avec des modèles à base d'arbres en Python

Elie Kawerk

Data Scientist

Éléments d'un arbre de décision

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

  • Nœud : question ou prédiction.

Machine Learning avec des modèles à base d'arbres en Python

Éléments d'un arbre de décision

Trois types de nœuds :

  • Racine : aucun nœud parent, question donnant deux nœuds enfants.

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

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

Machine Learning avec des modèles à base d'arbres en Python

Prédiction

Arbre étiqueté

Machine Learning avec des modèles à base d'arbres en Python

Information Gain (IG)

Diagramme du gain d'information

Machine Learning avec des modèles à base d'arbres en Python

Information Gain (IG)

Formule du gain d'information

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

  • indice de gini,
  • entropie. ...
Machine Learning avec des modèles à base d'arbres en Python

Apprentissage par arbre de classification

  • Les nœuds poussent récursivement.

  • À chaque nœud, fractionner les données selon :

    • la caractéristique $f$ et le point de coupure $sp$ qui maximisent $IG(\text{node})$.
  • Si $IG (\text{node})$ = 0, déclarer le nœud comme feuille.

    ...

Machine Learning avec des modèles à base d'arbres en Python
# Importer DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier
# Importer train_test_split
from sklearn.model_selection import train_test_split
# Importer accuracy_score
from sklearn.metrics import accuracy_score
# Diviser l'ensemble en 80 % entraînement, 20 % test
X_train, X_test, y_train, y_test= train_test_split(X, y, 
                                                   test_size=0.2, 
                                                   stratify=y,
                                                   random_state=1)
# Instancier dt, définir 'criterion' à 'gini'
dt = DecisionTreeClassifier(criterion='gini', random_state=1)
Machine Learning avec des modèles à base d'arbres en Python

Critère d'information dans scikit-learn

# Ajuster dt sur l'ensemble d'entraînement
dt.fit(X_train,y_train)

# Prédire les étiquettes de l'ensemble de test
y_pred= dt.predict(X_test)

# Évaluer l'exactitude sur l'ensemble de test
accuracy_score(y_test, y_pred)
0.92105263157894735
Machine Learning avec des modèles à base d'arbres en Python

Passons à la pratique !

Machine Learning avec des modèles à base d'arbres en Python

Preparing Video For Download...