Azure Machine Learning – Matriz de Confusão – Parte 4

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.

Sobre Diego Nogare 344 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.