Interpretando Modelos de Machine Learning
[Link]/beacon-insight/interpretando-modelos-de-machine-learning-96db60781354
14 de maio de 2021
Uma introdução
Nessa série de 6 postagens vamos deixar o básico da predição de lado e nos debruçar
sobre um aspecto mais artesanal da ciência de dados e do machine learning, como
interpretar, tirar insights e entender o que se passa dentro dos algoritmos. Não é um
assunto trivial e está longe de ter sido esgotado. Nessa série de postagens vamos começar
pelos modelos mais simples de estatística e como fazemos modelagem até os modelos
mais sofisticados de ensambles e Deep Learning tentando desvendar os porquês de uma
predição.
A sugestão inicial para o conteúdo dessa série será a seguinte:
Parte 0 — O que é Ciência de Dados e o Cientista de dados
Parte1 — Introdução a Interpretabilidade(este post)
Parte 2 — Interpretando modelos de alto viés e baixa variância.
Parte 3 — Interpretando modelos de baixo viés e alta variância.
Parte 4 — É possível resolver o trade-off entre viés e variância?
Parte 5 — Métodos Locais de interpretabilidade.
Parte 6 — Métodos Globais de interpretabilidade. Com Teoria dos Jogos e Shapley Value.
Do que estamos falando?
Para entendermos como interpretar algoritmos de machine learning, primeiro vamos
entender o que é um algoritmo de machine learning.
De forma bastante genérica, para nós, Algoritmos de Machine Learning (doravante
apenas ML) são uma mudança de paradigma da “programação tradicional” onde
precisamos passar toda a heurística explicitamente para um novo conceito, onde ao invés
de escrever a cada ação que o algoritmo deve realizar, apenas passamos diversos exemplos
e deixamos que o ML aprenda quais são as “melhores” (menor custo) decisões.
1/7
Figura 1 — Mudança de paradigma da programação tradicional para Machine Learning
Ou seja, algoritmos que recebem inputs e conseguem transformar em outputs sem que
sejam explicitamente programáveis, para nós, serão algoritmos de ML. Interpretar
algoritmos de ML é entender como eles podem transformar inputs em outputs.
Qual a importância de entender as predições?
Se ML, é apenas uma forma de mapear entradas em saídas de um jeito (às vezes) bastante
inteligente, parece uma boa ideia entender como ela pode fazer essa magica, não?
Um exemplo: Algoritmos de detecção de fraude em um banco.
Mapeamos um comportamento, coletamos os dados, treinamos um modelo e pronto!
Temos uma forma bastante esperta de detectar futuras fraudes. E agora? O que será que
esse algoritmo está fazendo? Se só pela curiosidade já não faria sentido entende-lo aqui
vão alguns motivos mais práticos:
Figura 2— Nature -> Data -> ML -> Predictions
2/7
O que esse cliente especifico fez para ser considerado um fraudador?
Qual tipo de fraude ele está cometendo?
Será que meu algoritmo está sendo preconceituoso?
Será que meu algoritmo tem algum “leakage”?
Se o cliente quiser saber o porquê da sua compra ter sido negada, vou dizer que foi
um algoritmo que eu não entendo?
E se o gerente quiser entender como está mudando o comportamento dos
fraudadores capturados pelo modelo ao longo do tempo?
E se ao invés de simplesmente prever, estamos interessados em resolver as falhas de
segurança para me precaver de futuras fraudes, como saberei quais são as alavancas
corretas?
Mesmo nesse exemplo bastante simples, identificamos diversas boas razões para entender
o que o algoritmo faz por dentro.
Se mesmo assim você não está convencido da importância, existe uma tendência bastante
forte, iniciada na Europa, onde as empresas já são obrigadas a explicar os motivos de uma
decisão como recusar um crédito, um seguro, uma vaga de emprego, etc, o que faz
bastante sentido, então não deverá demorar muito para que essa seja uma preocupação
diária quando estamos utilizando modelos preditivos.
Conceitos importantes: Viés e Variância.
Existem centenas de postagens falando sobre o trade-off entre viés e variância e o objetivo
aqui não é re-explicar todos os conceitos, apenas utilizá-los como linguagem para as
próximas postagens que virão. Então sem formalismos teóricos, podemos dividir o erro de
previsão (y-yhat) de qualquer modelo em 3 componentes distintos.
Figure 3 — Trade-off entre Viés e Variância.
y_real - y_hat = Erro = Parte aleatória + Viés + Variância
3/7
1. Parte Aleatória: Vivemos em mundo estocástico e não em um determinístico
como achavam os positivistas no final do século XIX. Portanto, mesmo os modelos
mais simples, mais óbvios, ainda tem aleatoriedades. Mesmo que seu modelo seja
perfeito, ele não atingirá Erro = 0, apenas se for um problema puramente
determinístico. Alguns problemas são “mais estocástico” do que outros. Por
exemplo, um modelo que prevê a órbita de um planeta tem uma componente
aleatório muito menor do que um modelo que prevê Fraude. A parte aleatória pode
ser considerada como uma reta horizontal na figura acima já que não depende da
complexidade.
2. Variância: A interpretação da variância, para nós, será uma espécie de
“volatilidade” das predições. Pequenas alterações no X causam grandes alterações
no y? -> Variância. Normalmente o trecho do erro “variância” é considerada como a
diferença entre os resultados previstos no treino e no teste, mas esse é um efeito e
não uma causa. A variância aumenta com o aumento da complexidade do modelo.
3. Viés: Esse é o tipo de erro mais importante para nós. O viés tem diversas
interpretações em diferentes contextos. Aqui, viés significa as simplificações do
nosso modelo, as hipóteses que temos que assumir para que o modelo funcione.
Modelos mais simples, por definição, são modelos mais enviesados, com pré-
requisitos mais fortes. O viés diminui com o aumento da complexidade.
Abordagens: Estatística x Machine Learning
Discutimos no post anterior, que Machine Learning pode ser diferente de Estatística, pois
o primeiro está preocupado com inferência, causalidade, exogeneidade, etc e o segundo
está preocupado, quase que exclusivamente em melhorar as predições. Portanto, podemos
pegar a mesma função, por exemplo uma regressão logística e analisar do ponto de vista
da estatística, que interpretaria se os betas são significativos, se os resíduos têm
distribuição normal ou analisar do ponto de vista do Machine Learning, como está a
relação entre Precisão e Recall, qual a AUC do modelo, etc.
4/7
Figure 4 — Engraçado, mas errado.
Então, como a estatística está interessada em entender os dados, cria-se modelos para
isso, esses modelos precisam ser altamente interpretáveis! Para que eles sejam
interpretáveis os modelos precisam ser Simples! Mas se os modelos são simples, como
vimos, eles são altamente enviesados.
5/7
Figure 5— Trade-off entre a qualidade das predições e a interpretabilidade do modelo.
Já os modelos de ML temos exatamente o oposto, como não estamos, originalmente
preocupados em interpretá-los, eles são pouquíssimos enviesados, no nosso conceito, eles
têm pouco pré-requisitos, poucas suposições sobre os dados, e o custo disso está na falta
de interpretabilidade, essa série de postagens tentam juntar esses dois mundos. Altas
métricas com alta interpretabilidade.
Figure 6— Evolução dos algoritmos com abordagem estatística para os algoritmos com
abordagem de Machine Learning.
Um exemplo simples é a regressão linear, um dos algoritmos mais antigos e simples,
altamente interpretável, baixíssima variância(praticamente não precisamos separar os
dados em treino em teste), mas altamente enviesado. Como viés aqui são as simplificações
para que o modelo funcione bem, abaixo alguns desses pré-requisitos para utilizar esse
modelo:
1. Variáveis precisam ser exógenas, logo, não entende interação entre as variáveis;
6/7
2. As influências entre X e y precisam ser constantes (daí o nome linear);
3. A distribuição do y precisa ser “bem comportada”.
Veremos esses e outros pré-requisitos assim como como interpretá-lo nas próximas
postagem.
Uma nova forma de classificar os algoritmos.
Para juntarmos tudo, vamos utilizar um novo termo para descrever essa nova forma de
separar/classificar os algoritmos de ML. De um lado temos os algoritmos mais
tradicionais, nascidos na estatística e econometria, com alguns pré-requisitos para
funcionar e altamente interpretáveis, não existiria ciência moderna sem eles, e a sua
interpretação é o que dá (caráter) científico para a ciência de dados, são os algoritmos
“White Box”.
E no outro extremo, temos aqueles algoritmos de ML que sabemos que funcionam muito
bem, pois suas métricas são excelentes, conseguem trabalhar com milhões de variáveis ao
mesmo tempo, conseguem fazer representações de espaços vetoriais complexos em
dimensões menores, com pouquíssimos pré-requisitos (baixo viés), podem inclusive gerar
imagens e textos, com o custo de que não temos tanto controle sobre o que ele faz por
dentro, a esses algoritmos damos o nome de “Black Box”.
Figure 7 —Vetor que representa as diferentes ferramentas de um cientista de Dados, mais
interpretáveis ou mais preditivos, dependendo do problema que está sendo enfrentado.
Nas próximas postagens nosso objetivo será juntar o lado bom desses dois extremos, alta
interpretabilidade com alta capacidade preditiva.
Próximo post:
Parte 2 — Interpretando modelos de alto viés e baixa variância.
7/7