Metryki wyjaśnialności

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

Spójność

  • Ocenia stabilność wyjaśnień przy trenowaniu modelu na różnych podzbiorach
  • Niska spójność → brak solidnych wyjaśnień

Obraz przedstawiający zbiór danych podzielony na dwa podzbiory: podzbiór 1 i podzbiór 2.

Wyjaśnialne AI w Pythonie

Spójność

  • Ocenia stabilność wyjaśnień przy trenowaniu modelu na różnych podzbiorach
  • Niska spójność → brak solidnych wyjaśnień

Model jest trenowany na każdym podzbiorze.

Wyjaśnialne AI w Pythonie

Spójność

  • Ocenia stabilność wyjaśnień przy trenowaniu modelu na różnych podzbiorach
  • Niska spójność → brak solidnych wyjaśnień

Za każdym razem, gdy model jest trenowany na podzbiorze, obliczane są ważności cech i wyznaczane jest podobieństwo kosinusowe.

Wyjaśnialne AI w Pythonie

Podobieństwo kosinusowe jako miara spójności

 

 

 

Obraz przedstawiający kluczowe wartości spójności i ich znaczenie: dla 1 – wyjaśnienia bardzo spójne.

Wyjaśnialne AI w Pythonie

Podobieństwo kosinusowe jako miara spójności

 

 

 

Obraz przedstawiający kluczowe wartości spójności i ich znaczenie: dla 1 – wyjaśnienia bardzo spójne, dla 0 – brak spójnych wyjaśnień.

Wyjaśnialne AI w Pythonie

Podobieństwo kosinusowe jako miara spójności

 

 

 

Obraz przedstawiający kluczowe wartości spójności i ich znaczenie: dla 1 – wyjaśnienia bardzo spójne, dla 0 – brak spójnych wyjaśnień, dla -1 – wyjaśnienia przeciwstawne.

Wyjaśnialne AI w Pythonie

Zbiór danych o przyjęciach

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit
337 118 4 4.5 4.5 9.65 0.92
324 107 4 4 4.5 8.87 0.76
316 104 3 3 3.5 8 0.72
322 110 3 3.5 2.5 8.67 0.8
314 103 2 2 3 8.21 0.45

 

  • X1, y1: pierwsza część zbioru danych
  • X2, y2: druga część zbioru danych
  • model1, model2: regresory Random Forest
Wyjaśnialne AI w Pythonie

Obliczanie spójności

from sklearn.metrics.pairwise import cosine_similarity

explainer1 = shap.TreeExplainer(model1) explainer2 = shap.TreeExplainer(model2)
shap_values1 = explainer1.shap_values(X1) shap_values2 = explainer2.shap_values(X2)
feature_importance1 = np.mean(np.abs(shap_values1), axis=0) feature_importance2 = np.mean(np.abs(shap_values2), axis=0)
consistency = cosine_similarity([feature_importance1], [feature_importance2]) print("Consistency between SHAP values:", consistency)
Consistency between SHAP values: [[0.99706516]]
Wyjaśnialne AI w Pythonie

Wierność

  • Ocenia, czy ważne cechy wpływają na predykcje modelu
  • Niska wierność → fałszywe zaufanie do rozumowania modelu
  • Przydatna w wrażliwych zastosowaniach

Obraz przedstawiający model generujący oryginalną predykcję dla przykładowej próbki.

Wyjaśnialne AI w Pythonie

Wierność

  • Ocenia, czy ważne cechy wpływają na predykcje modelu
  • Niska wierność → fałszywe zaufanie do rozumowania modelu
  • Przydatna w wrażliwych zastosowaniach

SHAP lub LIME są używane do lokalnego wyjaśnienia oryginalnej predykcji.

Wyjaśnialne AI w Pythonie

Wierność

  • Ocenia, czy ważne cechy wpływają na predykcje modelu
  • Niska wierność → fałszywe zaufanie do rozumowania modelu
  • Przydatna w wrażliwych zastosowaniach

Zmodyfikowana próbka jest podawana do modelu w celu wygenerowania nowej predykcji.

Wyjaśnialne AI w Pythonie

Wierność

  • Ocenia, czy ważne cechy wpływają na predykcje modelu
  • Niska wierność → fałszywe zaufanie do rozumowania modelu
  • Przydatna w wrażliwych zastosowaniach

Obraz przedstawiający wzór na wierność jako wartość bezwzględną różnicy między nową a oryginalną predykcją.

Wyjaśnialne AI w Pythonie

Obliczanie wierności

X_instance = X_test.iloc[[0]]

original_prediction = model.predict_proba(X_instance)[0, 1] print(f"Original prediction: {original_prediction}")
Original prediction: 0.43

Obraz przedstawiający wyjaśnienie ważności cech przez LIME dla wybranej próbki.

Wyjaśnialne AI w Pythonie

Obliczanie wierności

X_instance['GRE Score'] = 310  


new_prediction = model.predict_proba(X_instance)[0, 1] print(f"Prediction after perturbing {important_feature}: {new_prediction}")
faithfulness_score = np.abs(original_prediction - new_prediction) print(f"Local Faithfulness Score: {faithfulness_score}")
Prediction after perturbing GRE Score: 0.77

Local Faithfulness Score: 0.34
Wyjaśnialne AI w Pythonie

Czas na ćwiczenia!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...