Índice
- O Que é Erro Médio Absoluto ou MAE?
- Qual a Fórmula do MAE?
- Como Interpretar o MAE?
- Como Calcular o MAE Usando Scikit-learn em Python?
- Como Calcular o MAE em R?
- Diferença Entre Erro Absoluto e Relativo
- Diferença Entre MAE e MSE
- Diferença Entre MAE e MAPE
- O MAE Pode Ser Usado Para Avaliar Modelos De Classificação?
O Que é Erro Médio Absoluto ou MAE?
O erro médio absoluto (MAE) é uma métrica utilizada para avaliar o desempenho de modelos de regressão em machine learning.
Ela mede a média da diferença absoluta entre os valores previstos pelo modelo e os valores observados.
Imagine que você tenha um modelo de machine learning que foi treinado para prever o consumo de combustível de uma frota de veículos.
Se o modelo prevê que um determinado veículo vai consumir 10 litros de combustível para percorrer 100 quilômetros, mas o consumo real foi de 12 litros, o erro absoluto da previsão seria de 2 litros.
Após calcular o erro absoluto para cada previsão, você pode calcular o MAE, que é a média dos erros absolutos.
Note que ele não diferencia entre erros positivos e negativos.
Qual a Fórmula do MAE?
A fórmula do erro médio absoluto é bem simples. Basta subtrair a previsão do valor real, ignorar o sinal do resultado e calcular a média dos erros de todas as amostras.
Onde:
- n é o número de amostras
- y é o valor observado para cada amostra
- p é o valor previsto pelo modelo para cada amostra
- | | representa o valor absoluto
Como Interpretar o MAE?
Como você já deve ter notado, quanto menor o MAE, melhor é o desempenho do modelo.
Continuando com nosso exemplo do consumo de combustível da frota, se o MAE for de 2 litros, significa que o modelo tende a subestimar ou superestimar o consumo de combustível em 2 litros.
Essa é uma forma intuitiva de interpretar este erro, mas não confunda isso com estabelecer um intervalo de confiança para as previsões.
O MAE brilha em casos em que os erros próximos da mediana são mais importantes do que os erros extremos (outliers).
Como Calcular o MAE Usando Scikit-learn em Python?
Apesar de ser fácil de calcular o MAE manualmente, a biblioteca Scikit-learn possui uma função que faz isso por você.
A função mean_absolute_error
recebe como parâmetros o valor real e o valor previsto pelo modelo e retorna o MAE.
from sklearn.metrics import mean_absolute_error
y_true = [10, 12, 15, 8, 8]
y_pred = [12, 11, 13, 7, 9]
mean_absolute_error(y_true, y_pred)
Onde y_true
é uma array do NumPy, uma lista ou Series do Pandas com os valores reais e y_pred
é também uma dessas estruturas mas contendo os valores previstos pelo modelo.
Como Calcular o MAE em R?
Para calcular o MAE em R, vamos utilizar a função mae
do pacote Metrics
do R.
library(Metrics)
y_true = c(10, 12, 15, 8, 8)
y_pred = c(12, 11, 13, 7, 9)
mae = mae(y_true, y_pred)
print(mae)
Igual ao Scikit-learn, a função mae
recebe como parâmetros o valor real y_true
e o valor previsto y_pred
e retorna o MAE.
Diferença Entre Erro Absoluto e Relativo
O erro absoluto é a diferença entre o valor previsto pelo modelo de machine learning e o valor observado.
erro absoluto = |valor observado - valor previsto|
Como mostrei no exemplo inicial, se um modelo prevê que um veículo vai consumir 10 litros de combustível para percorrer 100 quilômetros, mas o consumo real foi de 12 litros, o erro absoluto da previsão seria de 2 litros.
O erro relativo, por outro lado, é o erro absoluto em relação ao valor observado. Ele é dado pelo seguinte cálculo:
erro relativo = |valor observado - valor previsto| / valor observado
No exemplo acima, o erro relativo seria de |12 - 10| / 12 = 16,67%.
O erro relativo tende a ser mais popular do que o erro absoluto.
Diferença Entre MAE e MSE
A maior diferença entre o MAE e o MSE (Erro Quadrático Médio) é que o MSE penaliza mais os erros maiores.
O MSE é calculado elevando os erros ao quadrado e depois calculando a média.
Isso infla os erros maiores, o que pode ser útil em casos em que os erros próximos da mediana são menos importantes do que os erros extremos (outliers).
Veja as diferenças entre o MAE e o MSE no exemplo abaixo:
Item | Valor Verdadeiro | Valor Previsto | MAE | MSE |
---|---|---|---|---|
1 | 10 | 12 | 2 | 4 |
2 | 12 | 11 | 1 | 1 |
3 | 15 | 13 | 2 | 4 |
4 | 8 | 7 | 1 | 1 |
5 | 8 | 9 | 1 | 1 |
Na prática, usar os dois juntos é uma ótima ideia, pois você saberá a performance do modelo tanto na maioria dos exemplos quanto nos casos extremos.
Diferença Entre MAE e MAPE
O MAPE (Erro Médio Absoluto Percentual) é uma métrica de erro que é muito utilizada em séries temporais, principalmente para previsões de demanda.
Veja esta tabela comparando o MAE e o MAPE sobre os mesmos itens:
Item | Valor Verdadeiro | Valor Previsto | MAE | MAPE (%) |
---|---|---|---|---|
1 | 10 | 12 | 2 | 20 |
2 | 12 | 11 | 1 | 8.3 |
3 | 15 | 13 | 2 | 13.3 |
4 | 8 | 7 | 1 | 12.5 |
5 | 8 | 9 | 1 | 12.5 |
Assim como explicado na seção de diferença entre erro absoluto e relativo, a diferença é que o MAPE é a média dos erros relativos.
Ele tende a ser mais popular do que o MAE, por ser mais fácil de interpretar e explicar a pessoas que não tem conhecimento técnico.
Ele também é preferível quando é crucial levar em conta a escala do valor observado.
Imagine que você esteja trabalhando em um problema de previsão de vendas de produtos.
Usando o erro médio absoluto não existe diferença entre um erro de 5 unidades num produto que vende 10 unidades e um erro de 5 unidades num produto que vende 1000 unidades.
Mas na prática, deixar de vender 5 unidades de um produto que vende 10 unidades por mês é mais grave do que deixar de vender 5 unidades num produto que vende 1000.
O MAE Pode Ser Usado Para Avaliar Modelos De Classificação?
O MAE não é diretamente aplicável a problemas de classificação, pois esses problemas envolvem previsões de categorias e não de valores numéricos mais granulares como nos problemas de regressão.
Para a maioria dos praticantes de machine learning, usar essa métrica num caso de classificação é um erro, então prefira usar outras métricas como precisão, recall, F1-score e ROC AUC.
Seja o primeiro a saber das novidades em Machine Learning. Me siga no LinkedIn.