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 previstas em um determinado limiar para transformar probabilidades em um fator de previsões de classe. Combine ifelse() com factor() da seguinte forma:
pos_or_neg <- ifelse(probability_prediction > threshold, positive_class, negative_class)
p_class <- factor(pos_or_neg, levels = levels(test_values))
confusionMatrix() no caret aperfeiçoa a função table() do R base ao adicionar várias estatísticas auxiliares úteis, além das taxas básicas na tabela. Você pode calcular a matriz de confusão (e as estatísticas associadas) usando os resultados previstos e os resultados reais, por exemplo:
confusionMatrix(p_class, test_values)
Este exercício faz parte do curso
Machine Learning com caret em R
Instruções do exercício
- Use
ifelse()para criar um vetor de caracteres,m_or_r, que seja a classe positiva,"M", quandopfor maior que 0,5, e a classe negativa,"R", caso contrário. - Converta
m_or_rem um fator,p_class, com níveis iguais aos detest[["Class"]]. - Crie uma matriz de confusão com
confusionMatrix(), passandop_classe a coluna"Class"do conjunto de dadostest.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# If p exceeds threshold of 0.5, M else R: m_or_r
# Convert to factor: p_class
# Create confusion matrix