Permutation importance

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Mengacak nada untuk menilai pentingnya instrumen

Gambar menunjukkan sekelompok musisi memainkan alat musik berbeda.

Explainable AI in Python

Permutation importance

  • Metode agnostik model
  • Menilai pentingnya fitur
    • Mengukur dampak pengacakan fitur pada kinerja
  • Sangat serbaguna

Gambar menunjukkan struktur jaringan saraf: kumpulan hidden layer, masing-masing berisi banyak neuron.

Explainable AI in Python

Permutation importance: praktik

Gambar menunjukkan dataset dengan 5 fitur dan model ML terlatih.

Explainable AI in Python

Permutation importance: praktik

Gambar menunjukkan dataset dimasukkan ke model ML untuk memperoleh kinerja dasar (baseline).

Explainable AI in Python

Permutation importance: praktik

Gambar menunjukkan satu fitur diacak: semula nilainya [1, 2, 3, 4], setelah diacak menjadi [4, 2, 1, 3]. Dataset yang diacak dimasukkan ke model ML untuk memperoleh kinerja setelah pengacakan.

Explainable AI in Python

Permutation importance: praktik

Gambar menunjukkan bahwa pentingnya fitur yang diacak sebanding dengan penurunan kinerja.

Explainable AI in Python

Permutation importance: praktik

Gambar menunjukkan bahwa penurunan besar menandakan fitur sangat penting, sedangkan penurunan kecil menandakan pentingnya lebih rendah.

Explainable AI in Python

Dataset penerimaan

Skor GRE Skor TOEFL Peringkat Universitas SOP LOR IPK (CGPA) Peluang Diterima Terima
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 ada di: 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

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]
Explainable AI in Python

Memvisualisasikan pentingnya fitur

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

Diagram batang permutation importance menunjukkan CGPA paling penting.

Explainable AI in Python

Perbandingan dengan pendekatan khusus model

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

Diagram batang permutation importance menunjukkan CGPA paling penting.

Regresi logistik
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Diagram batang koefisien regresi logistik menunjukkan CGPA paling penting.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...