Pular para o conteúdo principal

Entendendo a matriz de confusão em R

Este tutorial traz conteúdos do curso Machine Learning Toolbox da DataCamp e permite que você pratique matrizes de confusão em R.
· 3 min leer

Explore com IA

Se você quer fazer nosso curso Machine Learning Toolbox, aqui está o link.

Calcular uma matriz de confusão

Como você viu no vídeo, uma matriz de confusão é uma ferramenta muito útil para calibrar a saída de um modelo e examinar todos os possíveis resultados das suas previsões (verdadeiro positivo, verdadeiro negativo, falso positivo, falso negativo).

Antes de criar sua matriz de confusão, você precisa "cortar" as probabilidades preditas em um dado limiar para transformar probabilidades em previsões de classe. Dá para fazer isso facilmente com a função ifelse(), por exemplo:

class_prediction <-
  ifelse(probability_prediction > 0.50,
         "positive_class",
         "negative_class"
  )

Você poderia montar essa tabela de contingência com a função table() do R base, mas confusionMatrix() do caret traz várias estatísticas adicionais bem úteis além das taxas básicas da tabela. Você pode calcular a matriz de confusão (e as estatísticas associadas) usando os resultados previstos e também os resultados reais, por exemplo:

confusionMatrix(predicted, actual)

Instruções

  • Transforme as previsões numéricas p em um vetor de previsões de classe chamado p_class, usando um cutoff de 0,50. Use "M" para a classe positiva e "R" para a classe negativa ao fazer as previsões, para corresponder às classes dos dados originais.
  • Crie uma matriz de confusão usando p_class, os valores reais no conjunto test e a função confusionMatrix().

# If p exceeds threshold of 0.5, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix

Se tudo fez sentido, siga para o próximo exercício! Se não, aqui vai um vídeo de visão geral.

Vídeo de visão geral sobre matriz de confusão

De probabilidades à matriz de confusão

Por outro lado, digamos que você queira ter muita certeza de que seu modelo identifica corretamente todas as minas como minas. Nesse caso, você pode usar um limiar de previsão de 0,10, em vez de 0,90.

Você pode construir a matriz de confusão do mesmo jeito que fez antes, usando suas novas classes previstas:

pred <- ifelse(probability > threshold, "M", "R")

Em seguida, chame a função confusionMatrix() do mesmo modo que no exercício anterior:

confusionMatrix(pred, actual)

# If p exceeds threshold of 0.1, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix


Se quiser aprender mais com este curso, aqui está o link.

Temas

Relacionado