Importanța prin permutare

AI Explicabil în Python

Fouad Trad

Machine Learning Engineer

Amestecarea notelor pentru a determina importanța unui instrument

Imagine cu o trupă de muzicieni cântând la diferite instrumente.

AI Explicabil în Python

Importanța prin permutare

  • Metodă independentă de model
  • Evaluează importanța caracteristicilor
    • Măsoară efectul amestecării caracteristicilor asupra performanței
  • Foarte versatilă

Imagine care arată structura unei rețele neuronale: straturi ascunse cu mai mulți neuroni fiecare.

AI Explicabil în Python

Importanța prin permutare în acțiune

Imagine care arată un set de date cu 5 caracteristici și un model ML antrenat.

AI Explicabil în Python

Importanța prin permutare în acțiune

Imagine care arată setul de date introdus în modelul ML pentru a obține o performanță de referință.

AI Explicabil în Python

Importanța prin permutare în acțiune

Imagine care arată că o caracteristică este amestecată: valorile originale [1, 2, 3, 4] devin [4, 2, 1, 3]. Setul de date amestecat este introdus în modelul ML pentru a obține performanța amestecată.

AI Explicabil în Python

Importanța prin permutare în acțiune

Imagine care arată că importanța caracteristicii amestecate este proporțională cu scăderea performanței.

AI Explicabil în Python

Importanța prin permutare în acțiune

Imagine care arată că o scădere semnificativă indică importanță ridicată, iar o scădere mică indică importanță scăzută.

AI Explicabil în Python

Setul de date pentru admitere

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

 

Datele se află în: X_train, y_train

AI Explicabil în Python

MLPClassifier

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

model.fit(X_train, y_train)
AI Explicabil în Python

Importanța prin permutare

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]
AI Explicabil în Python

Vizualizarea importanței

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

Diagramă cu bare a importanțelor prin permutare, arătând că CGPA are cea mai mare importanță.

AI Explicabil în Python

Comparație cu abordări specifice modelului

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

Diagramă cu bare a importanțelor prin permutare, arătând că CGPA are cea mai mare importanță.

Regresie logistică
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Diagramă cu bare a coeficienților regresiei logistice, arătând că CGPA are cea mai mare importanță.

AI Explicabil în Python

Să exersăm!

AI Explicabil în Python

Preparing Video For Download...