Permutační důležitost

Explainable AI v Pythonu

Fouad Trad

Machine Learning Engineer

Zamíchání not pro určení důležitosti nástroje

Obrázek zobrazující skupinu hudebníků hrajících na různé nástroje.

Explainable AI v Pythonu

Permutační důležitost

  • Metoda nezávislá na modelu
  • Hodnotí důležitost příznaků
    • Měří vliv zamíchání příznaku na výkon
  • Velmi univerzální

Obrázek zobrazující strukturu neuronové sítě: soubor skrytých vrstev, z nichž každá obsahuje více neuronů.

Explainable AI v Pythonu

Permutační důležitost v praxi

Obrázek zobrazující dataset s 5 příznaky a natrénovaný ML model.

Explainable AI v Pythonu

Permutační důležitost v praxi

Obrázek zobrazující dataset předávaný ML modelu pro získání základního výkonu.

Explainable AI v Pythonu

Permutační důležitost v praxi

Obrázek ukazující, že jeden příznak je zamíchán – v původním datasetu měl hodnoty [1, 2, 3, 4], v zamíchaném [4, 2, 1, 3]. Zamíchaný dataset je předán ML modelu pro získání výkonu po zamíchání.

Explainable AI v Pythonu

Permutační důležitost v praxi

Obrázek ukazující, že důležitost zamíchaného příznaku je úměrná poklesu výkonu.

Explainable AI v Pythonu

Permutační důležitost v praxi

Obrázek ukazující, že výrazný pokles značí vysokou důležitost příznaku, zatímco malý pokles naznačuje nižší důležitost.

Explainable AI v Pythonu

Dataset přihlášek

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

 

Data jsou uložena v: X_train, y_train

Explainable AI v Pythonu

MLPClassifier

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

model.fit(X_train, y_train)
Explainable AI v Pythonu

Permutační důležitost

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 v Pythonu

Vizualizace důležitosti

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

Sloupcový graf permutačních důležitostí ukazující, že CGPA má nejvyšší důležitost.

Explainable AI v Pythonu

Srovnání s přístupy specifickými pro model

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

Sloupcový graf permutačních důležitostí ukazující, že CGPA má nejvyšší důležitost.

Logistická regrese
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Sloupcový graf koeficientů logistické regrese ukazující, že CGPA má nejvyšší důležitost.

Explainable AI v Pythonu

Pojďme si procvičit!

Explainable AI v Pythonu

Preparing Video For Download...