Mae E Filho Contorno - Mãe carinhosa jovem abraçando filho pequeno contorno silhueta ...
Mãe carinhosa jovem abraçando filho pequeno contorno silhueta ...

Entendendo Contorno de Erro Absoluto Médio (MAE) na Prática

Vocês sabem que sempre tem alguém no fórum perguntando sobre máscaras de contorno e métricas de erro. Vou explicar direto como funciona, porque a maioria dos tutoriais por aí inventa coisa que não existe. O MAE (Mean Absolute Error) é uma métrica de regressão que calcula a média dos erros absolutos entre valores previstos e reais. Quando a gente fala de mae e filho contorno, na verdade estamos nos referindo à visualização de mapas de contorno do MAE sobre um espaço de parâmetros ou dados bidimensionais. É isso mesmo: plotar contornos onde cada cor representa um nível diferente de erro absoluto médio.

Como implementar o mae e filho contorno no Python

A abordagem mais comum usa matplotlib com numpy. O código básico é simples, mas tem pegadinhas que ninguém avisa. Primeiro, gere sua grade de valores. Suponha que você tenha dois parâmetros de modelo e quer visualizar como o MAE varia conforme esses parâmetros mudam.

Você cria uma meshgrid com os valores possíveis de cada parâmetro, calcula o MAE para cada combinação, e então usa plt.contourf() para preencher os contornos.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_error

Parâmetros de exemplo
param1 = np.linspace(0.1, 10, 100)
param2 = np.linspace(0.1, 10, 100)
P1, P2 = np.meshgrid(param1, param2)

Calcula MAE para cada combinação (exemplo simplificado)
MAE_grid = np.sqrt(P12 + P22)

plt.contourf(P1, P2, MAE_grid, levels=20, cmap='viridis')
plt.colorbar(label='MAE')
plt.xlabel('Parâmetro 1')
plt.ylabel('Parâmetro 2')
plt.show()

Isso gera um mapa de calor com linhas de contorno. O problema é que quase todo mundo pule a parte dos níveis e deixa o matplotlib escolher sozinho. Isso às vezes cria gráficos confusos porque os níveis não representam faixas significativas de erro. A solução é definir os níveis manualmente com np.linspace(min, max, num_levels). Eu costumo usar entre 10 e 20 níveis dependendo da variância dos dados. Menos que isso e você perde detalhe. Mais que isso e o gráfico vira uma salada de cores sem leitura prática.

👉 Clique no botão abaixo para saber mais sobre o assunto!

O problema que eu nunca vi ninguém mencionar

Quando os dados têm outliers pesados, o MAE sozinho fica distorcido nos contornos. Eu tive um caso específico em que o contorno mostrava um "vale" de baixo erro que na verdade era artefato de três pontos fora da curva. O gráfico parecia lindo, mas a interpretação estava completamente errada. A solução foi combinar com median absolute error como camada extra e sobrepor os valores atípicos com markers vermelhos. Assim o contorno principal permanece legível e os pontos problemáticos ficam visíveis sem destruir a leitura geral.

Também é comum people usarem dados normalizados e esquecerem de transformar o eixo de volta. Se você normalizou P1 e P2 antes de calcular o MAE, o contorno mostrará valores que não correspondem mais aos parâmetros originais do modelo. Sempre mantenha uma cópia dos valores escalados para referência nos labels.

Alternativas quando o contorno MAE não funciona bem

Se seu espaço de parâmetros for maior que 2D, contornos somem porque a visualização cai pra 2D de qualquer jeito. Nesse caso, use heatmaps simples com imshow ou vá direto para gráficos de dispersão com cor codificada por MAE. Outra alternativa é o MAPE (Mean Absolute Percentage Error) quando a escala dos dados varia muito entre amostras. O MAE puro punirá mais erros absolutos em valores altos, o que pode não ser o que você quer se os dados têm magnitude muito diferente entre si.

Dica prática que economiza tempo

Se você está fazendo tuning de hiperparâmetros e precisa gerar contornos frequentemente, crie uma função reutilizável que aceite os grids de parâmetros e o cálculo de MAE como entrada. Eu montei uma que leva em média 15 minutos para rodar em datasets de até 50 mil amostras, comparado a 40 minutos se eu fizesse tudo manual a cada execução. O ganho não é só no tempo de plotagem, mas na consistência dos níveis entre gráficos diferentes, o que permite comparar visualmente execuções distintas sem confusão. O ponto principal é que contorno de MAE é ferramenta de diagnóstico, não relatório final. Use para identificar regiões de interesse no espaço de parâmetros e depois valide com validação cruzada de verdade, não só com o que o gráfico mostra.