Importanza per permutazione

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Mescolare le note per stimare l’importanza degli strumenti

Immagine che mostra una band che suona strumenti diversi.

Explainable AI in Python

Importanza per permutazione

  • Metodo agnostico al modello
  • Valuta l’importanza delle feature
    • Misura l’effetto dello shuffle di una feature sulla performance
  • Molto versatile

Immagine che mostra la struttura di una rete neurale: più layer nascosti, ognuno con vari neuroni.

Explainable AI in Python

Importanza per permutazione in pratica

Immagine che mostra un dataset con 5 feature e un modello ML addestrato.

Explainable AI in Python

Importanza per permutazione in pratica

Immagine che mostra il dataset passato al modello ML per ottenere la performance di base.

Explainable AI in Python

Importanza per permutazione in pratica

Immagine che mostra una feature mescolata: nel dataset originale i valori erano [1, 2, 3, 4], dopo lo shuffle diventano [4, 2, 1, 3]. Il dataset mescolato viene passato al modello ML per ottenere la performance dopo lo shuffle.

Explainable AI in Python

Importanza per permutazione in pratica

Immagine che mostra che l’importanza della feature mescolata è proporzionale al calo di performance.

Explainable AI in Python

Importanza per permutazione in pratica

Immagine che mostra che un forte calo indica alta importanza della feature, mentre un calo lieve indica bassa importanza.

Explainable AI in Python

Dataset ammissioni

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

 

I dati sono in: X_train, y_train

Explainable AI in Python

MLPClassifier

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

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

Importanza per permutazione

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 in Python

Visualizzare l’importanza

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

Bar plot delle importanze per permutazione che mostra CGPA come più importante.

Explainable AI in Python

Confronto con metodi specifici del modello

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

Bar plot delle importanze per permutazione che mostra CGPA come più importante.

Regressione logistica
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Bar plot dei coefficienti della regressione logistica che mostra CGPA come più importante.

Explainable AI in Python

Passons à la pratique !

Explainable AI in Python

Preparing Video For Download...