Fala galera, a primeira publicação do ano é realtiva à Matriz de Confusão, também chamada em algumas literaturas de tabela de contingência. Basicamente esta tabela valida o aprendizado supervisionado, comparando sua base de testes com a base treinada, e indica o quanto de acerto e erro ela teve. Este resultado é o que apresenta a acuracia do seu experimento.
Voltando ao exemplo que fiz para o Codificando Live de Edição #43, onde analisamos uma base de alimentos e definimos alguns itens da amostra como misturas ou não. A matrix aparece aos 20m32s de vídeo onde é rapidamente apresentada a acuracia, logo abaixo da curva ROC, no item Evaluation Model Result.
Se reparar no vídeo, o treino do modelo é feito com 80% da base que fizemos o upload e é mantido 20% para testes (esta divisão acontece na tarefa de split). É com esta base de testes, que já temos conhecimento do resultado, que a matriz vai validar a coluna de predição informada no treino. Ela aplica o que treinou em cima desta base de teste, e compara se o resultado que ela obteve é igual ao que está nos dados originais. Resultando na seguinte estrutura:
Onde alguns valores são absolutos, baseados na classificação binária de erro ou acerto, que são:
True Positive:
Ele entende que as misturas foram analisadas e classificadas como mistura (acertou a mistura). Neste caso, é 16.
False Positive:
Ele entende que as misturas foram analisadas e classificadas como não mistura (errou a mistura, classificando como outro prato). Neste caso, é 5.
True Negative:
Ele entendeu o que não era mistura (era outro prato) e classificou como outro prato (acertou que não era uma mistura). Neste caso, é 54.
False Negative:
Ele entende que os outros pratos (não misturas) foram classificados como mistura (errou o outro prato). Neste caso, é 0.
Já outros são baseados em cálculos matemáticos simples, como estes abaixo:
∑ Positivos = Acertos = True Positive + False Negative
∑ Negativos = Erros = False Positive + True Negative
Acuracy (acurácia):
(True Positive + True Negative) / (∑ Positivos + ∑ Negativos)
Com nossos números: (16 + 54) / ((16+0) + (5+54)) => 70 / 75 = 0.9333
Precision (precisão):
(True Positive) / (True Positive + False Positive)
Com nossos números: (16) / (16 + 5) => 16 / 21 = 0.7619
Recall:
True Positive / ∑ Positivos
Com nossos números: 16 / (16+0) => 16 / 16 = 1
F1 Score:
(2* True Positive) / (2* True Positive + False Positive + False Negative)
Com nossos números: (2*16) / (2*16 + 5 + 0) => 32 / 37 = 0.8648
Com estes números, e mais a curva ROC e o AUC, é possível validar os valores do seu experimento e saber se está aceitável ou não. Quanto mais exemplos tiver na base de treino, mais precisa será a coluna de predição porque o computador vai aprender com mais exemplos.