Ważność permutacyjna

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

Tasowanie nut jako miara ważności instrumentu

Obraz przedstawiający zespół muzyków grających na różnych instrumentach.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna

  • Metoda niezależna od modelu
  • Ocenia ważność cech
    • Mierzy wpływ tasowania cech na wydajność
  • Bardzo wszechstronna

Obraz przedstawiający strukturę sieci neuronowej: zbiór warstw ukrytych, z których każda zawiera wiele neuronów.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna w praktyce

Obraz przedstawiający zbiór danych z 5 cechami i wytrenowany model ML.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna w praktyce

Obraz przedstawiający zbiór danych przekazywany do modelu ML w celu uzyskania bazowej wydajności.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna w praktyce

Obraz pokazujący, że jedna cecha jest tasowana: w oryginalnym zbiorze jej wartości to [1, 2, 3, 4], a po potasowaniu [4, 2, 1, 3]. Potasowany zbiór jest przekazywany do modelu ML w celu uzyskania wydajności po tasowaniu.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna w praktyce

Obraz pokazujący, że ważność potasowanej cechy jest proporcjonalna do spadku wydajności.

Wyjaśnialne AI w Pythonie

Ważność permutacyjna w praktyce

Obraz pokazujący, że znaczny spadek oznacza wysoką ważność cechy, a mały spadek — niską ważność.

Wyjaśnialne AI w Pythonie

Zbiór danych – rekrutacja

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

 

Dane są dostępne w: X_train, y_train

Wyjaśnialne AI w Pythonie

MLPClassifier

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

model.fit(X_train, y_train)
Wyjaśnialne AI w Pythonie

Ważność permutacyjna

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]
Wyjaśnialne AI w Pythonie

Wizualizacja ważności

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

Wykres słupkowy ważności permutacyjnych pokazujący, że CGPA ma najwyższą ważność.

Wyjaśnialne AI w Pythonie

Porównanie z metodami specyficznymi dla modelu

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

Wykres słupkowy ważności permutacyjnych pokazujący, że CGPA ma najwyższą ważność.

Regresja logistyczna
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Wykres słupkowy współczynników regresji logistycznej pokazujący, że CGPA ma najwyższą ważność.

Wyjaśnialne AI w Pythonie

Lass uns üben!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...