Explicabilidade local com LIME

IA explicável em Python

Fouad Trad

Machine Learning Engineer

  • LIME → Local Interpretable Model-Agnostic Explanations
  • Explica previsões de modelos complexos
  • Funciona em instâncias individuais
  • Agnóstico ao tipo de modelo

Logo do LIME.

IA explicável em Python

Explicadores LIME

  • Adaptado a diferentes tipos de dados

Diagrama mostrando os explicadores LIME disponíveis. O primeiro é o explicador tabular do LIME.

IA explicável em Python

Explicadores LIME

  • Adaptado a diferentes tipos de dados

Mesmo diagrama mostrando também o Text Explainer.

IA explicável em Python

Explicadores LIME

  • Adaptado a diferentes tipos de dados
  • Gera perturbações ao redor de uma amostra
  • Vê o efeito na saída do modelo
  • Constrói um modelo mais simples para explicar

Mesmo diagrama mostrando também o Image Explainer.

IA explicável em Python

Explicadores LIME

  • Adaptado a diferentes tipos de dados
  • Gera perturbações ao redor de uma amostra
  • Vê o efeito na saída do modelo
  • Constrói um modelo mais simples para explicar

Mesmo diagrama com o explicador Tabular em destaque.

IA explicável em Python

Conjunto de dados de admissões

Pontuação GRE Pontuação TOEFL Nota da universidade SOP LOR CR Chance de admissão Aceitar
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: prevê chance de admissão
  • classifier: prevê aceitação
  • Features em X
IA explicável em Python

Criando explicador tabular

Regressão
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
)
Classificação
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
)
IA explicável em Python

Visualizando a explicação

Regressão
explanation_reg.as_pyplot_figure()

Gráfico de barras mostrando o efeito de cada feature no modelo de regressão. As features ficam em uma faixa para facilitar a interpretação.

Classificação
explanation_class.as_pyplot_figure()

Gráfico de barras mostrando o efeito de cada feature no modelo de classificação. As features ficam em uma faixa para facilitar a interpretação.

IA explicável em Python

SHAP vs. LIME

SHAP
shap.waterfall_plot(...)

Gráfico cascata do SHAP mostrando como cada feature puxa a previsão para positivo ou negativo.

LIME
explanation_class.as_pyplot_figure()

Gráfico de barras mostrando o efeito de cada feature no modelo de classificação. As features ficam em uma faixa para facilitar a interpretação.

IA explicável em Python

Vamos praticar!

IA explicável em Python

Preparing Video For Download...