Permütasyon önemliliği

Python ile Açıklanabilir AI

Fouad Trad

Machine Learning Engineer

Enstrüman önemini belirlemek için notaları karıştırma

Farklı enstrümanlar çalan bir müzik grubunu gösteren görsel.

Python ile Açıklanabilir AI

Permütasyon önemliliği

  • Modelden bağımsız yöntem
  • Özellik önemini değerlendirir
    • Özellik karıştırmanın performansa etkisini ölçer
  • Çok yönlüdür

Sinir ağının yapısını gösteren görsel: her biri çoklu nöronlardan oluşan gizli katmanlar.

Python ile Açıklanabilir AI

Uygulamada permütasyon önemliliği

5 özellikli bir veri kümesi ve eğitilmiş bir ML modelini gösteren görsel.

Python ile Açıklanabilir AI

Uygulamada permütasyon önemliliği

Veri kümesinin ML modeline verilerek temel performansın elde edildiğini gösteren görsel.

Python ile Açıklanabilir AI

Uygulamada permütasyon önemliliği

Orijinal veri kümesinde [1, 2, 3, 4] olan bir özelliğin karıştırılıp [4, 2, 1, 3] olduğu; karıştırılan veri kümesinin ML modeline verilerek karıştırılmış performansın elde edildiğini gösteren görsel.

Python ile Açıklanabilir AI

Uygulamada permütasyon önemliliği

Karıştırılan özelliğin öneminin, performanstaki düşüşle orantılı olduğunu gösteren görsel.

Python ile Açıklanabilir AI

Uygulamada permütasyon önemliliği

Büyük düşüşün yüksek önem, küçük düşüşün düşük önem gösterdiğini belirten görsel.

Python ile Açıklanabilir AI

Kabul veri kümesi

GRE Puanı TOEFL Puanı Üniversite Derecesi SOP LOR CGPA Kabul Olasılığı Kabul
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

 

Veriler şurada: X_train, y_train

Python ile Açıklanabilir AI

MLPClassifier

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

model.fit(X_train, y_train)
Python ile Açıklanabilir AI

Permütasyon önemliliği

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]
Python ile Açıklanabilir AI

Önemi görselleştirme

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

Permütasyon önemlerini gösteren çubuk grafik; CGPA en yüksek öneme sahip.

Python ile Açıklanabilir AI

Modele özgü yaklaşımlarla karşılaştırma

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

Permütasyon önemlerini gösteren çubuk grafik; CGPA en yüksek öneme sahip.

Lojistik regresyon
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Lojistik regresyon katsayılarını gösteren çubuk grafik; CGPA en yüksek öneme sahip.

Python ile Açıklanabilir AI

Hadi pratik yapalım!

Python ile Açıklanabilir AI

Preparing Video For Download...