Paradoxo da Acurácia
Um conceito fundamental para sua jornada em Ciência de Dados
Introdução
Quando começamos a aprender sobre alguma nova área de nosso interesse, seja ela uma disciplina da faculdade, um instrumento, um esporte, uma demanda do trabalho, sempre somos bombardeados com “conceitos fundamentais”, os quais precisamos saber em detalhes seu funcionamento e levá-los em consideração a todo momento durante nossos estudos. Hoje, conheceremos um pouco sobre um conceito fundamental para a sua jornada no mundo da Ciência de Dados, em especial quando falamos sobre o treinamento e a avaliação do seu modelo: O Paradoxo da Acurácia
Definição
Em linhas gerais, o Paradoxo da Acurácia pode ser definido como a situação contraditória na qual uma acurácia elevada em seu modelo de classificação pode evidenciar uma falha do seu próprio modelo em realizar predições de fato significativas.
Estranho né? Como uma acurácia alta em uma base de teste pode evidenciar uma falha no meu modelo? Essa contradição pode ser melhor explicada através de um exemplo, discutido logo a seguir.
Se você ainda não sabe o que significa acurácia de um modelo de classificação, não deixe de consultar nosso Turing Talks que aborda esse assunto. Nele, também pode-se encontrar a definição de conceitos importantes como Falso positivo, Falso negativo, precision e recall.
Estudo de caso — caixa de spam
Imagine que você, como um cientista de dados, foi contratado por uma empresa para criar um modelo de Machine Learning que identifica se um e-mail é “spam” ou não a partir de seu título e assunto. Para realizar tal tarefa, você recolhe os 50 mil e-mails recebidos e mandados por todos os colaboradores da empresa, entre os quais têm-se 49 mil e-mails “verdadeiros” e mil e-mails “spam”. Além disso, você decide que usará 80% desses dados para treinar seu modelo e 20% para testar sua efetividade.
Após passar por todo o processo de análise e construção de um modelo de classificação, você entrega um modelo com uma acurácia de 98%! Um resultado aparente muito bom e que deixou todos satisfeitos.
Contudo, depois de algumas semanas, você começa a receber inúmeras reclamações informando que os e-mails de spam continuam aparecendo na caixa de entrada, apesar da presença de seu algoritmo com 98% de acurácia. Onde está o erro? Por que o modelo não está funcionando? O que a acurácia não está nos dizendo?
Analisando os dados utilizados
Ao analisar o gráfico acima, podemos ver o quão mal distribuído estão os e-mails entre as diferentes classes (spam e não spam). Se separarmos esses dados entre teste (20%) e treino(80%) presernvando a proporção, teremos a seguinte configuração:
Dados de treino
- e-mails não spam: 49000 x 0,8 = 39200
- e-mail spam: 1000 x 0,8 = 800
Dados de teste
- e-mails não spam: 49000 x 0,2 = 9800
- e-mails spam: 1000 x 0,2 = 200
Analisando as respostas do modelo
Na tentativa de descobrir o motivo da falha no modelo, você percebe um padrão estranho e que não faz sentido, seu modelo classifica todos os textos (ou quase todos) como não spam. Isso nos dá um algoritmo que, mesmo sem utilidade prática nenhuma, apresenta uma acurácia quase perfeita. Uma vez que os dados desbalanceados garantem 9800 acertos em 10000 tentativas e, portanto, 98% de acurácia.
Mas onde está o paradoxo?
Os pontos levantados acima nos permite concluir que, em determinadas situações e problemas, uma acurácia alta nem sempre nos dá o melhor modelo. Por exemplo, se construíssemos um modelo com 82% de acurácia, mas que apresentasse um recall elevado, ou seja, que não deixasse spams passarem com facilidade, esse modelo teria muito mais valor e de fato ajudaria na resolução do problema.
Tendo isso em vista, encontramos nosso paradoxo! Um modelo com menor acurácia pode agregar muito mais valor para um problema do que um modelo com acurácia gigantesca mas indiferente aos dados.
Como identificar esse problema
Agora que vimos o que significa e como ocorre o Paradoxo da Acurácia, a sua identificação é de igual importância. Uma forma possível de perceber se o seu modelo está apresentando uma acurácia alta, mas sem um potencial real de discriminar as classes, é utilizando e outras métricas de avaliação, como precision, recall, f1, matriz de confusão, entre outras. Todas essas muito bem explicadas no Turing Talks de métricas de avaliação em classificação.
Além disso, outros métodos para escapar desse paradoxo estão relacionados com a manipulação dos dados existentes para evitar o seu desbalanceamento, ferramentas essas que serão melhor explicadas no nosso próximo Turing Talks.
Conclusão
Muito obrigado por chegar até aqui! Espero que esse texto tenha te ajudado a entender melhor sobre o Paradoxo da Acurácia, um conceito fundamental para os seus estudos e sua formação como Cientista de Dados.
Se quiserem conhecer um pouco mais sobre o que fazemos no Turing USP, não deixem de seguir as nossas redes sociais: Facebook, Instagram, LinkedIn e, claro, acompanhar nossos posts no Medium. Para acompanhar também um pouco de nosso projetos, acesse nosso GitHub.