Guia Visual para a Matriz da Confusão

Matrizes de confusão binárias e multi-classe explicadas

Construímos um modelo de aprendizado de máquina para classificar se um paciente tem ou não algum tipo de vírus. Um paciente pode estar em dois estados: ou tem o vírus ou não.

Paciente tem vírus?

Representamos um paciente como um círculo. O preenchimento significa que eles têm o vírus. Não preenchido significa que não.

Para qualquer paciente, nosso modelo produz uma pontuação entre 0 e 1. Uma pontuação de 1 significa que o modelo está prevendo que o paciente tem o vírus, e 0 uma previsão que eles não têm.

As pontuações previstas são representadas como um quadrado. Quanto mais preenchido, maior a pontuação.

Se pegarmos uma seleção de 100 pacientes, onde uma parte desses pacientes tem o vírus, e então temos o modelo produzir uma pontuação para cada paciente, como podemos avaliar o desempenho do modelo?

Existem muitas maneiras diferentes de avaliar o quão bem as pontuações do modelo correspondem aos valores reais. Neste exemplo, vamos dar uma olhada na matriz de confusão onde usamos uma grade para avaliar visualmente os resultados.

Limite

Para determinar se os escores se referem a uma previsão positiva ou negativa do vírus, precisaremos decidir onde limitar-los. Podemos fazer isso escolhendo um valor em que todos os escores maiores que esse valor são considerados previsões positivas e todos abaixo são negativos. Um ponto de corte.

Todas as pontuações acima do limiar (linha vermelha) são consideradas positivas para o vírus. Todos abaixo são considerados negativos.

Onde colocamos esse valor limiar determina o quão tendencioso nosso modelo é para as duas classes.

Um limiar baixo resulta em um viés em relação a uma saída positiva e o inverso é verdadeiro para um limiar alto.

Escolher o limiar correto depende do objetivo do seu modelo e de como ele será usado. Por enquanto, vamos simplesmente escolher um limiar de 0,5.

Observado vs. Predito

Agora que aplicamos o limite a cada escore de saída, podemos comparar nossas saídas com os pacientes reais.

4 Grupos

Existem quatro grupos distintos que emergem quando comparamos os resultados.
  • True Positive (TP): A classe prevista foi positiva para o vírus e a classe real foi positiva.
  • Falso Positivo (FP): O modelo previu positivo e a classe real foi negativa.
  • Falso Negativo (FN): A classe prevista foi negativa e a classe real foi positiva.
  • True Negativo (TN): A classe prevista foi negativa para o vírus e a classe real também foi negativa.

A primeira palavra, que é um booleano Verdadeiro ou Falso,é Verdadeira quando a previsão e os valores reais correspondem e Falso de outra forma. A segunda palavra refere-se à classe: neste caso pode ser positiva ou negativa.

Um modelo com bom desempenho teria principalmente verdadeiros positivos e verdadeiros negativos que seremos capazes de visualizar em uma matriz de confusão.

Matriz de Confusão

Contando cada uma das quatro categorias podemos exibir os resultados em uma grade de 2 x 2. Ao longo do eixo y estão os valores reais (Os pacientes e seu rótulo de positivo ou negativo) e ao longo do eixo x é a nossa previsão.

Cada quadrante desta grade refere-se a uma das quatro categorias, então, contando os resultados de um quadrante, podemos colocar o valor naquela célula.

Cada quadrante refere-se a uma das quatro possibilidades.

É útil colorir cada quadrante com a proporção que o valor das células ocupa em relação a todas as células da linha. Uma vez que os verdadeiros positivos e verdadeiros negativos estão ao longo da diagonal de cima-esquerdo para inferior-direito, podemos assumir que o modelo está funcionando bem se esta diagonal for destacada.

Caso o modelo tenha um desempenho ruim, é fácil identificar o que deu errado, pois uma das células diagonais será preenchida apenas um pouco e outra nessa linha será destacada. Para o modelo defeituoso acima, o número de falsos positivos é muito maior do que o número de verdadeiros negativos, então nosso modelo é mais previsível da classe positiva (o modelo prevê que o paciente tem o vírus quando não tem).

Podemos voltar ao modelo e fazer mudanças com base nessas informações. Talvez mudemos a forma como o treinamos, ou a arquitetura do modelo em si. Este também pode ser um bom momento para mudar o limiar para um valor mais alto para que as saídas sejam tendenciosas para a classe negativa. Matrizes de confusão de classe binária como esta podem ajudar a orientar nossa tomada de decisão ao construir um modelo de classificação.

Matriz de Confusão multi-classe

Depois de uma carreira de sucesso, nos aposentamos do mundo da medicina e decidimos assumir um hobby em fotografia de vida selvagem. Para ajudar a organizar as fotos que tiramos, construímos um modelo de classificação para rotular quais animais estão nas fotos. Como podemos usar uma matriz de confusão para avaliar problemas de várias classes?

Como antes ainda precisamos determinar qual classe os scores de saída previram. Em vez de realizar o limiar, vamos escolher a saída com a maior probabilidade e considerar que a classe que o modelo está prevendo.

Células destacadas são a maior pontuação prevista para uma foto.

A matriz de confusão é criada de forma semelhante como antes, exceto agora há duas classes extras. A ideia geral é a mesma também: para cada previsão, comparamos o resultado com os dados rotulados que estamos avaliando. Se nosso modelo prevê elefante e a imagem realmente continha um elefante,essa é uma classificação correta!

Podemos então adicionar esse resultado à sua célula associada. O mesmo vale para quando nosso modelo está errado, como quando a classe prevista é macaco, mas a foto continha um leão.

Depois de comparar cada classe prevista com o rótulo associado, a matriz de confusão começa a parecer semelhante à situação da classe binária. A diagonal aqui é onde o modelo se apresentou com precisão e conterá altos valores nessas células em relação a outras células nessa mesma linha.

Além disso, ainda podemos identificar onde todos os verdadeiros positivos, falso-positivos, verdadeiros negativos e falso-negativos são relativos a qualquer classe. Digamos que estamos interessados em como nosso modelo está se saindo no peixe da classe:

  • True Positive (TP): Uma classificação de peixe quando a classe real é um peixe.
  • Falso Positivo (FP): Uma classificação de peixe, mas na verdade era uma das outras 3 classes.
  • Falso Negativo (FN): Uma classificação de algo além de peixe, mas a classe real era um peixe.
  • True Negativo (TN): Uma classificação de algo além de peixe, e a classe real era algo diferente de peixe. (A previsão e as aulas reais não têm que coincidir, pois só nos preocupamos com a classe de peixes).

Quando a classificação está incorreta, podemos ver exatamente onde o modelo estava incorreto. Aqui podemos ver que nosso modelo está classificando leões como macacos:

Espero que este modelo não seja implantado em nenhum ambiente de alto risco.

Obrigado.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store