Permutation importance

Förklarbar AI i Python

Fouad Trad

Machine Learning Engineer

Blanda noter för att avgöra instrumentets betydelse

Bild som visar ett band av musiker som spelar olika instrument.

Förklarbar AI i Python

Permutation importance

  • Modellagnostisk metod
  • Bedömer särdragsviktighet
    • Mäter effekten av särdragsblandning på prestanda
  • Mycket mångsidig

Bild som visar strukturen hos ett neuralt nätverk: en samling dolda lager, vart och ett med flera neuroner.

Förklarbar AI i Python

Permutation importance i praktiken

Bild som visar ett dataset med 5 särdrag och en tränad ML-modell.

Förklarbar AI i Python

Permutation importance i praktiken

Bild som visar att datamängden matas in i ML-modellen för att få en baslinjeprestanda.

Förklarbar AI i Python

Permutation importance i praktiken

Bild som visar att ett särdrag blandas, där värdena i originaldatamängden var [1, 2, 3, 4] och i den blandade blev [4, 2, 1, 3]. Den blandade datamängden matas in i ML-modellen för att få den blandade prestandan.

Förklarbar AI i Python

Permutation importance i praktiken

Bild som visar att vikten hos det blandade särdragen är proportionell mot prestandatappet.

Förklarbar AI i Python

Permutation importance i praktiken

Bild som visar att ett stort prestandatapp indikerar hög viktighet för särdragen, medan ett litet tapp antyder lägre viktighet.

Förklarbar AI i Python

Antagningsdatamängd

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 finns i: X_train, y_train

Förklarbar AI i Python

MLPClassifier

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

model.fit(X_train, y_train)
Förklarbar AI i Python

Permutation importance

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]
Förklarbar AI i Python

Visualisera viktighet

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

Stapeldiagram över permutationsvikter som visar att CGPA har högst viktighet.

Förklarbar AI i Python

Jämförelse med modellspecifika metoder

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

Stapeldiagram över permutationsvikter som visar att CGPA har högst viktighet.

Logistisk regression
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Stapeldiagram över logistiska regressionskoefficienter som visar att CGPA har högst viktighet.

Förklarbar AI i Python

Nu kör vi en övning!

Förklarbar AI i Python

Preparing Video For Download...