Entender o uso da palavra "confusão" no nome "matriz de confusão" pode ajudar a começar a entender a utilidade dessa matriz.
Vou descrever uma situação fictícia, que vai ajudar a entender o uso desse tipo de matriz.
Imagine um teste de percepção de vogais ("a", "e", "i", ou "u"). Nesse teste as pessoas têm que observar um papel com uma vogal manuscrita e identificar qual vogal é.
O quanto essas pessoas acertam ou se confundem, ao identificar a vogal, é anotado em uma matriz, que cruza vogal escrita com a vogal identificada.
Essa matriz mostra o quanto de confusão o teste causou nas pessoas testadas.
Assim, "confusão" é a origem nos valores, e não, o que essa matriz nos causa.
Em aprendizado de máquina (AM), ou mais popularmente, inteligência artificial (IA), é muito comum a utilização de matriz de confusão para visualizarmos quão bem está se saindo um classificador.
--
Para quem está começando na área, simplificando muito:
Em AM há várias técnicas para construirmos modelos para executar alguma tarefa.
Existem vários possíveis tipos de tarefas. Por exemplo, conversar com humanos via um chat ou gerar imagens. Porém, um tipo de tarefa mais "simples" (com muitas aspas) e muito utilizado é o classificador.
O classificador é um programa que tenta acertar a "classe" de uma "informação".
"Informação", na frase acima, pode ser, por exemplo, um conjunto de dados sobre:
- o uso que uma pessoa faz de seu cartão de crédito
- o funcionamento de uma máquina
- uma ação no mercado internacional
- uma imagem
- um áudio.
A "classe", nos exemplos acima, podem ser, por exemplo, indicadores de:
- uso fraudulento do cartão
- necessidade de manutenção da máquina
- comprar, vender ou manter a ação
- tipos de animais na imagem
- palavras ditas no áudio
A matriz de confusão ajuda a avaliar, rápida e visualmente, se um classificador está funcionando bem, comparando o resultado apresentado com o resultado esperado.
Fica mais fácil entender utilizando um exemplo.
Vamos imaginar que avaliaremos um classificador binário, que tem apenas duas possíveis classes na saída.
Poderia ser uma predição da existência de uma doença, tendo como dados de entrada a imagem de um exame. As classes na saída poderiam ser "Sim, tem a doença" e "Não, não tem a doença". Mas para simplificar vamos assumir que a saída será "Positivo", em caso de ter a doença, e "Negativo", em caso de não ter a doença.
Assim, para um conjunto de imagens de exames temos:
- o diagnóstico verdadeiro, indicado por médicos, que pode ser "Positivo" ou "Negativo"; e
- a predição do classificador que estamos avaliando, que também pode ser "Positivo" ou "Negativo".
Com 2 classes a matriz de confusão, que sempre é uma matriz quadrada, terá 2 linhas e 2 colunas. Ou seja, apresentará 4 valores.
Podemos definir que cada linha significa uma classe de diagnóstico real e cada coluna uma classe predita.
Ficaria assim o significado de cada célula da matriz de confusão:
Matriz de Confusão |
Classe prevista Pelo Classificador |
||
Positivo | Negativo | ||
Classe real Diagnosticada Por médicos |
Positivo | Previsão: Positivo Diagnóstico: Positivo |
Previsão: Negativo Diagnóstico: Positivo |
Negativo | Previsão: Positivo Diagnóstico: Negativo |
Previsão: Negativo Diagnóstico: Negativo |
Simplificando um pouco, quando a previsão acerta vou chamar o resultado de Verdadeiro, e quando erra, de Falso. Ficando assim:
Matriz de Confusão |
Previsto | ||
Positivo | Negativo | ||
Real | Positivo | Verdadeiro Positivo | Falso Negativo (Erro do tipo II) |
Negativo | Falso Positivo (Erro do tipo I) |
Verdadeiro Negativo |
Lembro, na matriz acima, que há dois padrões de nomenclatura para os valores que indicam as quantidades de erro do classificador:
- Erro do tipo I = Falso Positivo
- Erro do tipo II = Falso Negativo
Um exemplo numérico:
Vamos supor que temos 1.000 imagens de exames, devidamente diagnosticados, e que 100 apresentam comprovação da doença, e 900 não apresentam.
Ao passar essas imagens pelo classificador, este identifica doença em 95 imagens, porém distribuídas da seguinte forma:
- das 100 que realmente tem doença, em apenas 80 o classificador previu acertadamente a doença; e
- das 900 que realmente não tem a doença, em 15 o classificador previu erroneamente a doença.
A matriz de confusão ficaria assim:
Matriz de Confusão |
Previsto | ||
Positivo (95) | Negativo (905) | ||
Real | Positivo (100) | 80 | 20 |
Negativo (900) | 15 | 885 |
Na verdade, a matriz de confusão seria apenas estes 4 valores abaixo (além da indicação de que a previsão, neste exemplo, está nas colunas):
80 | 20 |
15 | 885 |
Os valores da diagonal principal (que destaquei com negrito apenas para ajudar na identificação) indicam o total de resultados verdadeiros do classificador. Os demais valores indicar os resultados falsos.
No caso:
- 80 verdadeiros positivos mais 885 verdadeiros negativos, é igual a 965 classificações verdadeiras;
- 15 falsos positivos mais 20 falsos negativos, é igual a 35 classificações falsas.
Quanto maiores os valores da diagonal principal, melhor o classificador.
Como disse antes, a matriz de confusão ajuda em uma avaliação visual inicial rápida.
Por isso, muitas vezes é apresentada com variação de cores, para identificar ainda mais rapidamente a distribuição dos valores. Nesse exemplo, poderíamos utilizar tons de verdes mais escuros para números maiores e tender ao branco para números menores ficando assim:
80 | 20 |
15 | 885 |
Porém, a matriz de confusão está longe de ser a única uma forma de avaliar um classificador.
Existem várias métricas de avaliação da qualidade de um classificador. Além de sempre serem feitas pesquisas nessa área. Afinal, medir a qualidade de algo é essencial para balizar sua evolução.
A avaliação desses classificadores é importantíssima, pois, no exemplo fictício acima, por mais que acertar 965 classificações em 1.000, pareça muito bom, imaginem só os problemas que seriam causados pelas 35 classificações erradas.
Vou abordar métricas para classificadores no próximo artigo, mas é bom saber que muitas métricas utilizam os valores da matriz de confusão para seus cálculos.
Assim sendo, vou apresentar uma a matriz de confusão com as siglas normalmente utilizadas nas fórmulas das métricas:
Matriz de Confusão |
Previsto | ||
Positivo | Negativo | ||
Real | Positivo | VP | FN |
Negativo | FP | VN |
Para não haver dúvidas:
- VP = Verdadeiro Positivo
- FN = Falso Negativo
- FP = Falso Positivo
- VN = Verdadeiro Negativo
Para terminar, mostrarei um exemplo de algo que já foi dito acima: O tamanho da matriz de confusão varia com o número de classes a serem previstas pelo classificador.
Imagine um conjunto de informações a serem rotuladas com 3 possíveis classes: "mamífero", "peixe" e "ave".
Nesse caso, a matriz de confusão ficaria assim:
Matriz de Confusão |
Previsto | |||
mamífero | peixe | ave | ||
Real | mamífero | Verdadeiro mamífero | Falso peixe (mamífero) | Falsa ave (mamífero) |
peixe | Falso mamífero (peixe) | Verdadeiro peixe | Falsa ave (peixe) | |
ave | Falso mamífero (ave) | Falso peixe (ave) | Verdadeira ave |
Apesar da matriz de confusão as vezes parecer mesmo "confusa", depois de entendida é bem simples.
E, apesar de simples, é um conhecimento muito importante na área de aprendizado de máquina.
Este artigo é introdutório para futuros artigos sobre "Métricas" e "Mão na massa" em aprendizado de máquina.
Espero que tenha sido útil!
--
Links
- Algumas pessoas indicam que a inspiração para a "matriz de confusão" veio da "matriz de contingência", e esta, por usa vez, foi criada por Karl Pearson em uma publicação científica de 1904.
- Até onde pude verificar, o termo "matriz de confusão" foi cunhado por George A. Miller e Patricia E. Nicely em um artigo publicado em 1955.
Nenhum comentário:
Postar um comentário