Olá pessoal! Sejam bem vindos ao meu novo artigo!
Neste artigo irei descrever uma das técnicas de Machine Learning chamada Classificação Multiclasse e suas métricas de avaliação, estas métricas são fundamentais para avaliar se os dados coletados estão com bons resultados e como podemos melhorá-los.
Vamos para o exemplo, temos uma máquina onde é coletado Letras/Status informando um dos quatro parâmetros, que são eles A,B,C,D, com isto iremos coletar 230 amostras dos sensores recebendo parâmetros e iremos avaliar se está correto ou não a classificação.
Com os parâmetros iremos criar a "Matriz de Confusão", e após a coleta das amostras gerou abaixo o seguinte resultado:
Um exemplo da coleta da informação da máquina foi o sistema recebeu o parâmetro "B" mas foi classificado como "A", gerando o erro e com isso catalogando a quantidade de acertos e não acertos
Para isso são criadas 4 status para essa técnica, que são elas
- True positive (TP) : significa uma classificação correta da classe positiva. Onde o sistema conseguiu acertar o status corretamente.
- True negative (TN): significa uma classificação correta da classe negativa. Considerando o status "A", o TN é a soma do restante não pertencente ao "A".
- False positive (FP) : significa uma classificação errada da classe positiva. Considerando o status "A", o FP será os valores não acertados na parte vertical correspondente ao seu status da Matriz de Confusão.
- False negative (FN) : significa uma classificação errada da classe negativa. Considerando o status "A", o FP será os valores não acertados na parte horizontal correspondente ao seu status da Matriz de Confusão.
Após estas definições precisamos realizar os cálculos no MS Excel que segue abaixo:
TP - True Positive - Coluna K
=SE(A2="";"";SEERRO(DESLOC($A$1;CORRESP($A2;$A$2:$A$5;0);CORRESP($A2;$B$1:$E$1;0));""))
ou em inglês
=IF(A2="";"";IFERROR(OFFSET($A$1;MATCH($A2;$A$2:$A$5;0);MATCH($A2;$B$1:$E$1;0));""))
FP - False Positive - Coluna L
=SE(A2="";"";SEERRO(SOMA(DESLOC($A$1;1;CORRESP($A2;$1:$1;0)-1;CONT.VALORES($A:$A);1))-K3;""))
ou em inglês
=IF(A2="";"";IFERROR(SUM(OFFSET($A$1;1;MATCH($A2;$1:$1;0)-1;COUNTA($A:$A);1))-K3;""))
FN - False Negative - Coluna M
=SE(A2="";"";SEERRO(SOMA(B2:H2)-K3;""))
ou em inglês
=IF(A2="";"";IFERROR(SUM(B2:H2)-K3;""))
TN - True Negative - Coluna N
=SE(J3="";"";SOMA($B$2:$H$18)-SOMA(K3:M3))
ou em inglês
=IF(J3="";"";SUM($B$2:$H$18)-SUM(K3:M3))
Após as definições, vamos as métricas Accuracy (Acurácia), Error Rate (Taxa de Erro), Precision (Precisão), Recall (Revocação-Sensibilidade) e F1-score (medida F).
Accuracy - Acurácia - Coluna O
Esta métrica é um classificador que mede a quantidade de acertos sobre o todo. Podendo afirmar que é o percentual de instâncias classificadas corretamente.
=SE(J3="";"";(K3+N3)/(K3+M3+L3+N3))
ou em inglês
=IF(J3="";"";(K3+N3)/(K3+M3+L3+N3))
Error Rate - Taxa de Erro - Coluna P
Esta métrica verifica se o erro está alto ou baixo, podendo descartar toda a amostragem avaliada, ou informar se a algum erro na coleta dos dados.
=SE(J3="";"";(L3+M3)/(K3+M3+L3+N3))
ou em inglês
=IF(J3="";"";(L3+M3)/(K3+M3+L3+N3))
Precision - Precisão - Coluna Q
Esta métrica verifica o número de vezes que uma classe foi predita corretamente sobre o falso positivo.
=SE(A2="";"";SEERRO(K3/(K3+L3);""))
ou em inglês
=IF(A2="";"";IFERROR(K3/(K3+L3);""))
Recall - Revocação - Coluna R
Esta métrica verifica o número de vezes que uma classe foi predita corretamente sobre o falso negativo.
=SE(A2="";"";SEERRO(K3/(K3+L3);""))
ou em inglês
=IF(A2="";"";IFERROR(K3/(K3+L3);""))
Após os valores individuais calculados, será necessário obter a média destas métricas, onde estão nas células O1 até a R1, que segue abaixo a fórmula:
=MÉDIA(O3:O30)
ou em inglês
=AVERAGE(O3:O30)
Com todos os valores cálculados podemos calcular os índices da Acurácia Total e do F1 Score (Medida F)
Overall Accuracy - Acurácia Total - Célula U2
=SOMA(ÍNDICE((DESLOC($A$1;1;1;CONT.VALORES($A:$A);CONT.VALORES($A:$A)))*(DESLOC($A$1;0;1;1;CONT.VALORES($A:$A))=DESLOC($A$1;1;0;CONT.VALORES($A:$A);1));0))/SOMA(DESLOC($A$1;1;1;CONT.VALORES($A:$A);CONT.VALORES($A:$A)))
ou em inglês
=SUM(INDEX((OFFSET($A$1;1;1;COUNTA($A:$A);COUNTA($A:$A)))*(OFFSET($A$1;0;1;1;COUNTA($A:$A))=OFFSET($A$1;1;0;COUNTA($A:$A);1));0))/SUM(OFFSET($A$1;1;1;COUNTA($A:$A);COUNTA($A:$A)))
F1 Score - Fator F quando beta = 0,5 - Célula U4
Com esta métrica informa o desempenho das amostras.
=2*(Q1*R1)/(Q1+R1)
Quando é necessário alterar o Beta para deixar mais "preciso" o modelo deverá utilizar a fórmula abaixo que segue na célula U7
=1/(U6*(1/Q1)+(1-U6)*(1/R1))
Espero que tenha gostado desse artigo!
Caso tenha alguma sugestão de outra técnica, poste aqui nos comentários.
Se gostou, curta e compartilhe este artigo para que todos saibam o que é possível fazer dentro do Excel.
E ja conhece o meu novo curso online de Excel?
Abraços a todos e até o próximo artigo!
Fabio BALDINI
Frase do Dia: "Você só é limitado por sua própria Imaginação." Autor: Loraine Wagner
OBS: Quero agradecer imensamente ao Grande Mestre e Amigão Alessandro Trovato pelas eternas revisões dos artigo para que sempre fique esmero. Obrigadão grande Mestre!