É comum validarmos os modelos de aprendizado de máquina sob duas perspectivas: Processual e matemática. O ponto de vista processual trata a questão da melhoria que o modelo trouxe para o processo de negócio em que o mesmo foi inserido. O levantamento destas informações geralmente está ligado a avaliação de dados básicos como tempo, custo ou lucro do processo antes e depois da implantação do modelo. Eventualmente testes de hipóteses podem auxiliar nestas atividades de comparação.

Já o ponto de vista matemático envolve a avaliação de métricas de qualidade, que devem ser selecionadas de acordo com a natureza do modelo (exemplo: classificação ou regressão). Estas métricas são usadas tanto no final do processo de modelagem, para fornecer uma idea de qualidade do modelo, quanto durante o processo de modelagem, para ajudar na escolha dos melhores algoritmos, transformações, amostras, etc.

Os algoritmos de otimização de modelos (tuning) que usam grid search ou random search, por exemplo, sempre se baiseiam em alguma destas métricas de qualidade para definir os melhores hiper parâmetros do algoritmo usado. Outras sub atividades do processo de modelagem, como feature selection ou model selection, tambem se baseiam nestas métricas para tomar decisões.

Métricas de classificação

Existem diversas métricas que podem ser usadas para avaliar um modelo. As métricas mais comuns para problemas de classificação são: Accuracy, Specificity/Recall, Sensitivity e Precision. Estas métricas geralmente vêm acompanhadas de uma matriz conhecida como matriz de confusão, conforme aprensetando nas figuras 1 e 2.

Basicamente a métrica accuracy calcula a taxa de acerto de todas as classes do modelo, Sensitivity/Recall calcula a taxa de acerto da classe positiva (True Positive Rate), Specifivity da classe negativa (True Negative Rate) e Precision calcula a probabilidade, dado que o modelo classificou uma determinada observação como positivo (precision pos) ou negativo (precision neg), de esta observação realmente pertencer à classe escolhida pelo modelo.

Modelo / Referência Positivo Negativo
Positivo Verdadeiro Positivo (VP)
True Positive (TP)
Falso Positivo (FP)
False Positive (FP)
(Type I error)
Negativo Falso Negativo (FN)
False Negative (FN)
(Type II error)
Verdadeiro Negativo (VN)
True Negative (TP)

Figura 1: Modelo de uma matriz de confusão (português e inglês).

 

Modelo / Referência Positivo Negativo
Positivo 30 7
Negativo 23 93

Figura 2: Matriz de confusão preenchida

No exemplo da figura 2 temos o resultado de um modelo de classificação binária. Na orizontal temos as respostas do modelo e na vertical os valores reais existentes nos dados de teste. Portanto, foram testadas 153 observações, sendo que 100 delas possuem a classe negativa (93 + 7) e 53 a classe positiva (23 + 30).

Batendo o olho na matriz podemos observar que o modelo possui um certo erro, pois classificou 116 casos como negativos e 37 como positivos. Vamos analisar as métricas.

Métrica Fórmula Resultado
Accuracy (VP + VN) / Total de observações (30+93) / 153 = 0,8039
Sensitivity / Recall VP / (VP + FN) 30 / (30 + 23) = 0,5660
Specificity VN / (VN + FP) 93 / (93 + 7) = 0,9300
Precision Pos VP / (VP + FP) 30 / (30 + 7) = 0,8108
Precision Neg VN / (VN + FN) 93 / (93 + 23) = 0,8017

Vale a pena avaliar estas métricas em conjunto, ou seja, eventualmente (depende dos dados que estão sendo analisados) a avaliação isolada destas métricas pode não ser suficiente para ter ideia da qualidade do modelo. Vamos analisar dois exemplos abaixo com uma amostra de 100 observações para facilitar nossas análises.

Exemplo 1: Accuracy em classes desbalancedas

Modelo / Referência Positivo Negativo
Positivo 1 0
Negativo 4 95

A accuracy da tabela acima é (95 + 1) / 100 = 0,96. Um resultado muito bom se considerarmos que o valor maximo para esta métrica é 1. No entanto, veja que temos em mãos um problema de classe desbalanceada: 95 casos negativos e apenas 5 positivos. Se analisarmos a métrica Specificity / Recall veremos que o resultado é 1 / (1 + 4) = 0,2. Ou seja, o basicamente o modelo consegue acertar apenas os casos negativos.

Exemplo 2: Alta taxa de acertos com baixa precisão

Modelo / Referência Positivo Negativo
Positivo 5 90
Negativo 0 5

Neste cado continuamos com nosso problema de classe desbalanceada. No exemplo anterior nosso modelo não conseguiu bom desempenho nos casos positivos, mesmo apresentando uma boa accuracy em geral. Neste outro exemplo parece que nosso modelo finalmente consegue acertar os casos positivos! A métrica Specificity / Recall é 5 / (5 + 0) = 1, acerto máximo!

No entato, veja o valor da métrica precision dos casos positivos: 5 / (5 + 90) = 0,05. Ou seja, o modelo possui um bom desemenho nos casos positivos porque basicamente está dizendo que todos as observações são desta classe.

Portanto, analise toda a sua matriz de confusão!

Continue explorando…

Na literatura existem muitas outras métricas…é por isso que o campo de data science demora a ser explorado! Outras métricas também muito conhecidas são AUC (ROC Curve) e F1-score.

A métrica F1-score é uma média harmônica entre precision e recall, dada pela equação:

f1

A ROC Curve é um gráfico que ilustra o desempenho de um classificador ao longo de suas faixas de probabilidades da classe positiva. Quanto maior a área, melhor a curva.

Roccurves.png

Lembre-se, True Positive Rate é a mesma coisa que Sensitivity. False Positive Rate também pode ser dado por 1-Specificity.

Métricas de regressão

Já a métrica mais conhecida para problemas de regressao é o RMSE (Root Mean Squared Error). Nesta métrica basicamente encontramos a média da diferença entre o valor real e o valor previsto no modelo.

Valor real Valor do modelo Diferença (^2)
150 140 100
110 120 100
115 114 1
120 110 100

A soma dos erros elevado ao quadrado é igual e 301, a média é 301/4 = 75,25. Este valor já podemos chamar de MSE (Mean Squared Error). Ao tirarmos a raiz quadrada chegamos no RMSE: 8,67.

Outras métricas

Uma outra métrica bem conhecida é o Log Loss (Logarithmic Loss). Usada em problemas de classificação, esta métrica penaliza os modelos com classificações falsas. Quanto menor o Log Loss, melhor.

Para calcular o Log Loss é necessário ter a probabilidade de cada classe, ao invés de apenas o resultado da classe final (aquela com maior probabilidade). A fórmula é dada por:

logloss

Onde N é o número de observações, M é o número de classes, Yij indica se a classe j é a classe correta para a observação i, Pij é a probabilidade dada pelo modelo de atribuir a classe j para a observação i.

Quando existem apenas duas classes, a fórmula pode ser simplificada para:

logloss2

Faremos os cálculos destas métricas na parte prática.

Faça download do material

Abraços,
Weslley Moura

Anúncios