SHAP açıklanabilirliği

Python ile Açıklanabilir AI

Fouad Trad

Machine Learning Engineer

SHAP’e giriş

  • SHAPSHapley Additive exPlanations
  • Modelden bağımsız teknik
  • Oyun teorisindeki Shapley değerlerini kullanır
  • SHAP değerleri → tahminlere özellik katkılarını ölçer

SHAP logosu

Python ile Açıklanabilir AI

Grup üyeleri arasında kârı bölmek

Bir müzik grubuna ait görsel.

Python ile Açıklanabilir AI

SHAP açıklayıcıları

 

  • SHAP değerlerini hesaplayın
  • Ağaç açıklayıcılar → ağaç tabanlı modeller

SHAP açıklayıcılarının; her modele uygulanabilen genel açıklayıcılar ve belirli model türleri için optimize edilmiş türe özgü açıklayıcılar olarak ikiye ayrıldığını gösteren görsel.

Python ile Açıklanabilir AI

Kabul veri seti

GRE Puanı TOEFL Puanı Üniversite Puanı SOP LOR CGPA Kabul Şansı 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

 

  • rf_reg: kabul şansını tahmin eder
  • rf_class: kabulü tahmin eder
  • X: özellikleri içeren veri çerçevesi
Python ile Açıklanabilir AI

SHAP değerlerini türetme

import shap
Regresyon
explainer_reg = shap.TreeExplainer(rf_reg)

shap_values_reg = explainer_reg.shap_values(X)
Sınıflandırma
explainer_class = shap.TreeExplainer(rf_class)

shap_values_class = explainer_class.shap_values(X)
Python ile Açıklanabilir AI

SHAP çıktısını anlama

Regresyon
print(shap_values_reg.shape)  
(400, 6)

SHAP değerlerini, X veri çerçevesiyle aynı boyutta (örnek sayısı, özellik sayısı) bir tablo olarak gösteren görsel

Python ile Açıklanabilir AI

SHAP çıktısını anlama

Regresyon
print(shap_values_reg.shape)  
(400, 6)

SHAP değerlerini, X veri çerçevesiyle aynı boyutta (örnek sayısı, özellik sayısı) bir tablo olarak gösteren görsel

Sınıflandırma
print(shap_values_class.shape)
(400, 6, 2)

Pozitif sınıfın değerlerini seçin

positive_values = shap_values_class[:,:,1]
Python ile Açıklanabilir AI

Özellik önemi

mean_shap_values_class = np.abs(shap_values_class[:, :, 1]).mean(axis=0)
mean_shap_values_reg = np.abs(shap_values_reg).mean(axis=0)

plt.bar(X_train.columns, mean_shap_values_class) plt.bar(X_train.columns, mean_shap_values_reg)

Regresyon ve sınıflandırma için özellik önemlerini gösteren ve kabulü tahmin etmede CGPA ile GRE puanlarının en etkili faktörler olduğunu vurgulayan görsel.

Python ile Açıklanabilir AI

Haydi pratik yapalım!

Python ile Açıklanabilir AI

Preparing Video For Download...