Permutatiebelang

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Noten schudden om instrumentbelang te bepalen

Afbeelding van een band met muzikanten die verschillende instrumenten bespelen.

Explainable AI in Python

Permutatiebelang

  • Model-agnostische methode
  • Bepaalt feature-importance
    • Meet effect van schudden op performance
  • Zeer veelzijdig

Afbeelding van de structuur van een neuraal netwerk: meerdere verborgen lagen met neuronen.

Explainable AI in Python

Permutatiebelang in actie

Afbeelding van een dataset met 5 features en een getraind ML-model.

Explainable AI in Python

Permutatiebelang in actie

Afbeelding van de dataset die naar het ML-model gaat om een baseline-performance te meten.

Explainable AI in Python

Permutatiebelang in actie

Afbeelding die laat zien dat één feature is geschud: oorspronkelijk [1, 2, 3, 4], na schudden [4, 2, 1, 3]. De geschudde data gaat naar het ML-model om de nieuwe performance te meten.

Explainable AI in Python

Permutatiebelang in actie

Afbeelding die toont dat het belang van de geschudde feature evenredig is met de daling in performance.

Explainable AI in Python

Permutatiebelang in actie

Afbeelding die laat zien: grote daling = hoge feature-importance; kleine daling = lager belang.

Explainable AI in Python

Toelatingsdataset

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

 

De data staat 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

Permutatiebelang

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

Belang visualiseren

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

Staafdiagram van permutatiebelangen waaruit blijkt dat CGPA het belangrijkst is.

Explainable AI in Python

Vergelijking met model-specifieke aanpakken

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

Staafdiagram van permutatiebelangen waaruit blijkt dat CGPA het belangrijkst is.

Logistische regressie
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Staafdiagram van logistische-regressiecoëfficiënten waaruit blijkt dat CGPA het belangrijkst is.

Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...