Explicabilidade
Os modelos que vencem as Partes V e VI — florestas, boosters, redes — são caixas-pretas: milhares de árvores ou milhões de pesos sem uma história legível. Ainda assim, a discussão de ética impôs um requisito rígido: decisões que afetam pessoas precisam ser explicáveis. Regulações (GDPR, a LGPD brasileira), a depuração de modelos e a caça a vazamentos exigem todas a mesma capacidade. O ML explicável (XAI) a fornece.
Duas perguntas complementares:
- Global: como o modelo se comporta no geral — quais atributos o guiam?
- Local: por que o modelo fez esta previsão para este caso?
Interpretável por design
Antes de explicar uma caixa-preta, pergunte se você precisa de uma. A regressão linear/logística (coeficientes, razões de chances) e as árvores de decisão pequenas (regras legíveis) são transparentes nativamente. Quando sua acurácia basta — o que ocorre com frequência em problemas tabulares — a explicação mais simples é o próprio modelo. Quando a diferença de acurácia justifica uma caixa-preta, use métodos post-hoc e agnósticos ao modelo:
Importância por permutação (global)
Já vista em Random Forest: embaralhe a coluna de um atributo em dados separados e meça a queda no escore. Quebrar o vínculo atributo–alvo destrói exatamente a informação que o modelo extraiu daquele atributo.
As repetições geram uma distribuição (caixas), separando o sinal real do ruído do embaralhamento. Uma ressalva: com atributos fortemente correlacionados, embaralhar um deixa seu gêmeo disponível — ambos parecem sem importância mesmo quando o par é crítico. Confira a matriz de correlação em paralelo.
SHAP (local + global)
O SHAP (Lundberg & Lee, 2017) responde à pergunta local com rigor da teoria dos jogos. Trate os atributos como jogadores cooperando para produzir a previsão; o valor de Shapley (Shapley, 1953) \(\phi_j\) é a parcela justa do atributo \(j\) no prêmio — sua contribuição, na média sobre todas as ordens em que os atributos poderiam entrar:
O único esquema de atribuição que satisfaz axiomas de justiça (eficiência — as contribuições somam exatamente a previsão menos a média; simetria; aditividade). O cálculo exato é exponencial, mas o TreeSHAP o computa eficientemente para ensembles de árvores — um par perfeito para modelos da família XGBoost.
# pip install shap
import shap
explainer = shap.TreeExplainer(model) # para ensembles de árvores
shap_values = explainer(X_test)
shap.plots.waterfall(shap_values[0]) # LOCAL: esta previsão, atributo por atributo
shap.plots.beeswarm(shap_values) # GLOBAL: importância + direção dos efeitos
shap.plots.scatter(shap_values[:, "age"]) # dependência: efeito da idade nos dados
- Waterfall: a partir do valor base, cada atributo empurra a previsão para cima (vermelho) ou para baixo (azul) — a frase exata de que um analista de crédito precisa: "negado principalmente por: 3 pagamentos atrasados (+0,31), renda abaixo de X (+0,12), tempo de relacionamento longo (−0,05)";
- Beeswarm: um ponto por amostra por atributo — importância global com direção (valores altos do atributo X empurram as previsões para cima?).
LIME (local)
O LIME (Ribeiro et al., 2016 — "Why Should I Trust You?") explica uma previsão ajustando um modelo simples na vizinhança: perturbe a instância, obtenha as previsões da caixa-preta para as amostras perturbadas (ponderadas por proximidade) e ajuste um pequeno modelo linear localmente. Os coeficientes do substituto local são a explicação.
Intuitivo e funciona para qualquer modelo e tipo de dado (suas variantes para imagem/texto alternam superpixels/palavras). Fraquezas: as explicações dependem do esquema de perturbação e da largura da vizinhança, e podem ser instáveis — rode duas vezes, obtenha histórias diferentes. O SHAP virou em grande parte o padrão para trabalho tabular; o LIME permanece conceitualmente importante e útil além de tabelas.
Lendo explicações com responsabilidade
Explicação ≠ causalidade
SHAP/LIME descrevem o que o modelo usa, não como o mundo funciona. "O CEP empurra o escore para baixo" é um fato sobre o modelo — e possivelmente evidência de discriminação por proxy (o CEP fazendo as vezes de raça/renda), não uma afirmação causal sobre CEPs. Use explicações para auditar e depurar; use inferência causal para afirmar causas.
As explicações também são o instrumento de depuração do dia a dia: um atributo implausivelmente dominante em um beeswarm SHAP é a assinatura clássica de vazamento de dados; um gráfico de dependência sem sentido revela codificação ruim; drift nos padrões de explicação sinaliza problemas em produção.