Importance par permutation

Explainable AI en Python

Fouad Trad

Machine Learning Engineer

Mélanger les notes pour évaluer l'importance des instruments

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

Explainable AI en Python

Importance par permutation

  • Méthode indépendante du modèle
  • Évalue l'importance des caractéristiques
    • Mesure l'effet du mélange d'une caractéristique sur la performance
  • Très polyvalente

Image montrant la structure d'un réseau de neurones : une série de couches cachées, chacune avec plusieurs neurones.

Explainable AI en Python

Importance par permutation : en action

Image montrant un ensemble de données avec 5 caractéristiques et un modèle d'IA entraîné.

Explainable AI en Python

Importance par permutation : en action

Image montrant l'ensemble de données fourni au modèle d'IA pour obtenir une performance de base.

Explainable AI en Python

Importance par permutation : en action

Image montrant qu'une caractéristique est mélangée : dans l'ensemble original ses valeurs sont [1, 2, 3, 4] et, après mélange, elles deviennent [4, 2, 1, 3]. L'ensemble mélangé est fourni au modèle d'IA pour obtenir la performance après mélange.

Explainable AI en Python

Importance par permutation : en action

Image montrant que l'importance de la caractéristique mélangée est proportionnelle à la baisse de performance.

Explainable AI en Python

Importance par permutation : en action

Image montrant qu'une forte baisse indique une grande importance de cette caractéristique, tandis qu'une petite baisse suggère une importance moindre.

Explainable AI en Python

Ensemble d'admissions

Note GRE Note TOEFL Cote de l'université SOP LOR CGPA Probabilité d'admission 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

Explainable AI en Python

MLPClassifier

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

model.fit(X_train, y_train)
Explainable AI en Python

Importance par permutation

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]
Explainable AI en Python

Visualiser l'importance

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

Diagramme à barres des importances par permutation montrant que CGPA est la plus élevée.

Explainable AI en Python

Comparaison avec des approches propres au modèle

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

Diagramme à barres des importances par permutation montrant que CGPA est la plus élevée.

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

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

Explainable AI en Python

Passons à la pratique !

Explainable AI en Python

Preparing Video For Download...