Matriz de confusão em R: como fazer e calcular [com exemplos]

Publicados: 2021-03-09

O R emergiu como um dos principais pacotes de software para análise de dados e estatística atualmente. É um ambiente de código aberto preferido por seus fortes recursos de computação, visuais e gráficos. Se você é um estudante de engenharia, um profissional de análise de negócios ou alguém com grande interesse em ciência de dados, aprender a linguagem de programação R pode ajudá-lo de várias maneiras.

Neste artigo, abordaremos alguns conceitos básicos de aprendizado de máquina por meio desse conjunto integrado. Mais especificamente, discutiremos como calcular uma matriz de confusão em R .

Mas antes de passarmos para os detalhes técnicos, vamos primeiro entender por que escolhemos R para esse propósito. É por causa dos seguintes benefícios que esta linguagem de programação está ganhando popularidade entre estatísticos e cientistas de dados em todo o mundo:

  • Reprodutível: com R, você pode reproduzir relatórios e escrever código reutilizável
  • Compartilhável: tem uma curva de aprendizado baixa, o que abre caminhos para colaboração
  • Repetível: Qualquer pessoa pode não apenas entender o que você fez, mas também repetir as etapas para criar as mesmas funções em suas máquinas

O uso da linguagem R no campo do aprendizado de máquina também aumentou devido às razões acima. Você não precisa ser um programador especialista para entender sua sintaxe. E assim, estamos apresentando alguns fundamentos para você na próxima seção.

Índice

O que é uma Matriz de Confusão?

Uma matriz de confusão, ou uma matriz de erro, trata do problema de classificação padrão em estatística. Ele compreende um layout de tabela específico que facilita aos analistas de dados a visualização do desempenho de um algoritmo. Isso se aplica particularmente a algoritmos de aprendizado supervisionado.

Para elaborar ainda mais, uma matriz de confusão segue um formato N x N, onde N se refere ao número para classes de destino. Você pode usar esta tabela ou matriz para avaliar o desempenho de um modelo de classificação. Isso é possível porque a matriz compara os valores previstos com os valores alvo.

Em poucas palavras, você pode descrever como seu modelo de aprendizado de máquina, um classificador, neste caso, funciona em um conjunto de dados de teste (para os quais você já possui os valores verdadeiros).

Para entender este método, você precisa estar familiarizado com os seguintes termos:

  • Verdadeiro Positivo (TP): Os valores positivos são previstos corretamente
  • Falso Positivo (FP): Valores negativos são incorretamente previstos como positivos
  • Falso Negativo (FN): Valores positivos previstos como negativos
  • True Negative (TN): valores negativos previstos como valores negativos reais

Vejamos alguns exemplos para obter mais clareza.

Exemplos de matriz de confusão

  • Verdadeiro Positivo

Quando você previu que a Índia venceria a Copa do Mundo de Críquete, e ela venceu.

  • Falso positivo

Quando você esperava que a Índia ganhasse, mas ela perdeu.

  • Falso negativo

Quando você previu que a França não venceria, mas venceu.

  • Verdadeiro Negativo

Quando você projetou que a Índia 'não ganharia' a copa do mundo de críquete e perdeu a série na vida real.

À medida que avançamos, você deve lembrar que todos os valores previstos são descritos como: Positivo, Negativo, Verdadeiro e Falso.

Como calcular a matriz de confusão em R?

Considere um cenário em que você tenha uma lista de valores esperados ou conhecidos e outra lista de previsões do seu modelo de aprendizado de máquina. Em R, você pode calcular a matriz de confusão usando uma função simples da biblioteca de acento circunflexo: confusionMatrix(). Ele pode não apenas calcular a matriz, mas também retornar um relatório detalhado dos resultados.

Você pode seguir as etapas abaixo mencionadas para praticar o processo de mineração de dados:

  • Teste o conjunto de dados fornecido com os resultados esperados.
  • Preveja as linhas do seu conjunto de dados de teste.
  • Determine as contagens totais de previsões corretas e incorretas para cada classe.

Depois de ter feito isso, você encontrará os números organizados da seguinte maneira:

  • Cada linha da matriz corresponderá a uma classe prevista e cada coluna será vinculada a uma classe real.
  • O número total de classificações corretas e incorretas é refletido na tabela, juntamente com as somas de cada classe.

Suponha que você tenha 10 pessoas divididas em duas classes, masculino e feminino. Você tem que organizar as informações como uma matriz de confusão quando souber que 2 homens foram classificados como mulheres, enquanto 1 mulher foi classificada como homem.

mulheres homens

mulheres 3 1

homens 2 4

Aqui, os valores corretos são organizados em uma linha diagonal do canto superior esquerdo ao canto inferior direito da matriz (3 + 4). Os resultados nos dizem que há mais erros em prever membros masculinos como mulheres do que prever mulheres como homens. O algoritmo fez 7 previsões corretas de 10 resultados possíveis, o que significa que tem uma precisão de 70%.

Guia para fazer e calcular uma matriz de fusão em R

Como você pode observar, a função da matriz de confusão é uma ferramenta útil para examinar os possíveis resultados de suas previsões. Portanto, antes de começar a criar sua matriz, primeiro você precisa ter um “corte” de seus valores de probabilidade. Em outras palavras, você precisa marcar um limite para transformar suas probabilidades em previsões de classe.

Para fazer isso, você pode usar a função ifelse(). Por exemplo:

class_prediction <-

ifelse (probability_prediction > 0,50,

“class_positiva”,

“classe_negativa”

)

Você também pode escrever a função table() para fazer uma tabela de contingência na base R. No entanto, a função confusionMatrix() é conhecida por produzir estatísticas auxiliares valiosas.

O próximo passo é calcular a matriz de confusão e outras estatísticas associadas. Aqui, você precisaria dos resultados previstos e reais. Tomemos, por exemplo, a afirmação abaixo:

confusãoMatrix(previsto, real)

Agora, você deve continuar transformando suas previsões numéricas em um vetor de previsões de classe, sat p_class. Suponha que você queira usar um corte de 0,50.

Além disso, ao fazer previsões, não se esqueça de nomear as classes positivas e negativas com indicadores separados. Vamos chamar as classes positivas de “T” e nomear as negativas como “L”. Isso é feito para combinar as classes com os dados originais.

Agora que você tem uma p_class e valores reais no conjunto de dados de teste, você pode começar a fazer sua matriz de confusão, chamando a função confusionMatrix().

Alternativamente, você pode querer ter certeza sobre a precisão do seu modelo de mineração de dados. Nesses casos, é aconselhável usar um limite de 0,10, não 0,90. depois disso, você pode continuar com as mesmas etapas que fez no exercício anterior.

Com suas novas aulas previstas, você pode repetir esta chamada:

pred <- ifelse(probabilidade > limite, “T”, “L”)

Finalmente, você pode usar a função confusionMatrix() no acento circunflexo:

confusãoMatrix(previsto, real)

Com isso, concluímos este tutorial sobre a função de matriz de confusão para aprendizado de máquina em R. Espero que tenha sido útil!

Conclusão

Se você está curioso para aprender sobre R, ciência de dados, confira nosso PG Diploma in Data Science, criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1-on- 1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

Qual é a necessidade de criar uma matriz de confusão?

As razões a seguir nos apresentam os benefícios de ter uma matriz de confusão e como ela lida com problemas de desempenho.
1. A matriz de confusão é necessária para erradicar o problema com precisão de classificação. A razão de classificação muitas vezes causa alguns problemas por ocultar os detalhes necessários do modelo.
2. A matriz de confusão fornece uma visão das previsões e tipos de erros cometidos no modelo de classificação. As previsões corretas e incorretas são apresentadas de forma resumida.
3. Os erros e seus tipos são classificados para que você entenda o desempenho do seu modelo.

Como calcular a matriz de confusão em R?

A matriz de confusão em R pode ser calculada usando a função “confusionMatrix()” da biblioteca de acento circunflexo. Esta função não apenas calcula a matriz, mas também retorna um relatório detalhado da matriz. Você deve seguir alguns passos para calcular sua matriz de confusão.
1. Teste seu conjunto de dados.
2. Preveja o número total de linhas.
3. Preveja o total de previsões corretas e incorretas para cada classe.
Depois de extrair seus dados, você obterá os números organizados em linhas. As linhas serão conectadas à classe prevista enquanto as colunas serão conectadas à classe real. Os valores corretos estarão em uma linha diagonal. Adicione todos os valores e você obterá a porcentagem de precisão de sua matriz.

Como medir o desempenho em uma matriz de confusão?

Você pode calcular a taxa de precisão de um modelo usando uma matriz de confusão 2x2. A fórmula a seguir fornecerá a taxa de sucesso ou a taxa de precisão:
Precisão = (TP+TN)/(TP+TN+FP+FN)
Onde, TP = Verdadeiro Positivo, TN = Verdadeiro Negativo, FP = Falso Positivo, FN = Falso Negativo
A taxa de erro do seu modelo também pode ser calculada com a fórmula de cálculo da taxa que é:
Precisão = (TP+TN)/(TP+TN+FP+FN) = 1-Precisão
O conceito de taxa de erro é muito simples. Suponha que seu modelo tenha uma taxa de precisão de 80%, então a taxa de erro do seu modelo será de 20%.