Importance permutée

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Mélanger les notes pour estimer l’importance des instruments

Image montrant un groupe de musiciens jouant différents instruments.

IA explicable en Python

Importance permutée

  • Méthode indépendante du modèle
  • Évalue l’importance des variables
    • Mesure l’effet du mélange d’une variable sur la performance
  • Très polyvalente

Image montrant la structure d’un réseau de neurones : plusieurs couches cachées avec de multiples neurones.

IA explicable en Python

Importance permutée en pratique

Image montrant un jeu de données de 5 variables et un modèle ML entraîné.

IA explicable en Python

Importance permutée en pratique

Image montrant le jeu de données envoyé au modèle ML pour obtenir une performance de référence.

IA explicable en Python

Importance permutée en pratique

Image montrant qu’une caractéristique est mélangée : dans le jeu initial les valeurs étaient [1, 2, 3, 4] et après mélange elles deviennent [4, 2, 1, 3]. Le jeu mélangé est envoyé au modèle ML pour obtenir la performance mélangée.

IA explicable en Python

Importance permutée en pratique

Image montrant que l’importance de la variable mélangée est proportionnelle à la baisse de performance.

IA explicable en Python

Importance permutée en pratique

Image montrant qu’une forte baisse indique une grande importance de cette variable, tandis qu’une faible baisse suggère une importance moindre.

IA explicable en Python

Jeu de données d’admissions

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0

 

Les données sont dans : X_train, y_train

IA explicable en Python

MLPClassifier

from sklearn.neural_network import MLPClassifier
model = MLPClassifier(hidden_layer_sizes=(10,10))

model.fit(X_train, y_train)
IA explicable en Python

Importance permutée

from sklearn.inspection import permutation_importance

result = permutation_importance(model,
X_train, y_train,
n_repeats=10,
random_state=42,
scoring='accuracy')
print(result.importances_mean)
[0.16213568 0.13831658 0.10575377 0.10522613 0.11741206 0.20072864]
IA explicable en Python

Visualiser l’importance

import matplotlib.pyplot as plt
plt.bar(X_train.columns,
        result.importances_mean)

Diagramme en barres des importances permutées montrant que la CGPA est la plus élevée.

IA explicable en Python

Comparaison avec des approches spécifiques au modèle

import matplotlib.pyplot as plt
plt.bar(X_train.columns, 
        result.importances_mean)

Diagramme en barres des importances permutées montrant que la CGPA est la plus élevée.

Régression logistique
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Diagramme en barres des coefficients de la régression logistique montrant que la CGPA est la plus élevée.

IA explicable en Python

Passons à la pratique !

IA explicable en Python

Preparing Video For Download...