Lokalna wyjaśnialność z LIME

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

  • LIMELocal Interpretable Model-Agnostic Explanations
  • Wyjaśnia predykcje złożonych modeli
  • Działa na pojedynczych próbkach
  • Niezależny od typu modelu

Logo LIME.

Wyjaśnialne AI w Pythonie

Explainery LIME

  • Dostosowany do różnych rodzajów danych

Diagram przedstawiający dostępne explainery LIME. Pierwszy z nich to tabelaryczny explainer LIME.

Wyjaśnialne AI w Pythonie

Explainery LIME

  • Dostosowany do różnych rodzajów danych

Ten sam diagram z dodatkowo widocznym explainerem tekstowym.

Wyjaśnialne AI w Pythonie

Explainery LIME

  • Dostosowany do różnych rodzajów danych
  • Generuje perturbacje wokół próbki
  • Analizuje wpływ na wynik modelu
  • Tworzy prostszy model do wyjaśnienia

Ten sam diagram z dodatkowo widocznym explainerem obrazów.

Wyjaśnialne AI w Pythonie

Explainery LIME

  • Dostosowany do różnych rodzajów danych
  • Generuje perturbacje wokół próbki
  • Analizuje wpływ na wynik modelu
  • Tworzy prostszy model do wyjaśnienia

Ten sam diagram z wyróżnionym explainerem tabelarycznym.

Wyjaśnialne AI w Pythonie

Zbiór danych rekrutacyjnych

Wynik GRE Wynik TOEFL Ocena uczelni SOP LOR CGPA Szansa przyjęcia Akceptacja
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

 

  • regressor: przewiduje szansę przyjęcia
  • classifier: przewiduje akceptację
  • Cechy w X
Wyjaśnialne AI w Pythonie

Tworzenie explainera tabelarycznego

Regresja
from lime.lime_tabular import LimeTabularExplainer

instance = X.iloc[1,:]
explainer_reg = LimeTabularExplainer( X.values,
feature_names=X.columns,
mode='regression'
)
explanation_reg = explainer_reg.explain_instance(
instance.values,
regressor.predict
)
Klasyfikacja
from lime.lime_tabular import LimeTabularExplainer

instance = X.iloc[1,:]
explainer_class = LimeTabularExplainer( X.values,
feature_names=X.columns,
mode='classification'
)
explanation_class = explainer_class.explain_instance(
instance.values,
classifier.predict_proba
)
Wyjaśnialne AI w Pythonie

Wizualizacja wyjaśnienia

Regresja
explanation_reg.as_pyplot_figure()

Wykres słupkowy pokazujący wpływ każdej cechy na model regresji. Cechy umieszczono w zakresach dla lepszej interpretowalności.

Klasyfikacja
explanation_class.as_pyplot_figure()

Wykres słupkowy pokazujący wpływ każdej cechy na model klasyfikacji. Cechy umieszczono w zakresach dla lepszej interpretowalności.

Wyjaśnialne AI w Pythonie

SHAP a LIME

SHAP
shap.waterfall_plot(...)

Wykres kaskadowy SHAP pokazujący, jak każda cecha wpływa pozytywnie lub negatywnie na predykcję.

LIME
explanation_class.as_pyplot_figure()

Wykres słupkowy pokazujący wpływ każdej cechy na model klasyfikacji. Cechy umieszczono w zakresach dla lepszej interpretowalności.

Wyjaśnialne AI w Pythonie

Czas na ćwiczenia!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...