Imagine um estudante que decora todas as respostas da lista de exercícios e tira nota máxima nela — mas erra quase tudo na prova, porque as questões vieram diferentes. Ele não aprendeu o conteúdo: memorizou o gabarito. Esse é exatamente o problema que, em aprendizado de máquina, chamamos de overfitting. E existe também o extremo oposto, o underfitting, do aluno que não estudou o suficiente e erra tanto na lista quanto na prova.
Entender esses dois conceitos é provavelmente o passo mais importante para sair do “rodei o código e deu certo” e começar a avaliar de verdade um modelo de inteligência artificial.
O que um modelo deveria fazer
Um modelo de machine learning aprende observando exemplos. Damos a ele um conjunto de dados de treino — fotos rotuladas, históricos de vendas, registros de clientes — e ele ajusta seus parâmetros internos para reduzir o erro nessas amostras.
Mas o objetivo nunca é acertar os exemplos de treino. Esses já têm resposta conhecida. O objetivo é generalizar: acertar casos novos, que o modelo nunca viu. A capacidade de generalização é a única coisa que importa quando o sistema vai para produção.
Overfitting: quando o modelo aprende demais
Overfitting acontece quando o modelo se ajusta tão bem aos dados de treino que passa a capturar não só os padrões reais, mas também o ruído: coincidências, erros de medição e particularidades daquela amostra específica.
Um exemplo clássico: um sistema treinado para reconhecer cães em fotos que, por acaso, tinha imagens de cães quase sempre em gramados e imagens de gatos quase sempre dentro de casa. O modelo pode aprender a detectar grama em vez de detectar cães. No conjunto de treino, a taxa de acerto é excelente. Com uma foto de cão em um sofá, ele erra.
Sinais típicos de overfitting:
- Erro muito baixo no conjunto de treino e erro claramente maior no conjunto de teste.
- O desempenho no teste melhora até certo ponto do treinamento e depois começa a piorar, mesmo com o erro de treino ainda caindo.
- Pequenas mudanças nos dados de entrada causam mudanças grandes na previsão.
- O modelo é muito complexo em relação à quantidade de dados disponível.
Underfitting: quando o modelo aprende de menos
Underfitting é o oposto. O modelo é simples demais, ou foi treinado por tempo insuficiente, ou recebeu variáveis pouco informativas. Ele não consegue capturar nem os padrões evidentes dos dados.
Um exemplo simples: tentar prever o preço de um imóvel usando apenas uma reta a partir da área construída. A relação real envolve bairro, número de quartos, idade do prédio, vagas de garagem. Uma reta sobre uma única variável vai errar de forma sistemática, tanto nos dados de treino quanto nos novos.
Sinais típicos de underfitting: erro alto no treino e no teste, e previsões que parecem ignorar variações claras nos dados.
Comparando os dois cenários
| Situação | Erro no treino | Erro no teste | Causa comum | Caminho de correção |
|---|---|---|---|---|
| Underfitting | Alto | Alto | Modelo simples demais, poucas variáveis, treino curto | Aumentar a complexidade, criar melhores variáveis, treinar mais |
| Equilíbrio desejado | Baixo | Baixo e próximo do treino | — | Manter e monitorar |
| Overfitting | Muito baixo | Bem mais alto que o treino | Modelo complexo demais, poucos dados, ruído memorizado | Regularização, mais dados, simplificação, parada antecipada |
Como detectar: separe os dados antes de tudo
Não dá para diagnosticar nada olhando apenas o erro de treino. A prática padrão é dividir os dados em três partes:
- Treino — o modelo ajusta seus parâmetros aqui.
- Validação — usado para comparar configurações e decidir quando parar de treinar.
- Teste — reservado até o fim, tocado uma única vez, para estimar o desempenho real.
Quando os dados são poucos, a validação cruzada é uma alternativa robusta: divide-se o conjunto em k partes, treina-se k vezes usando uma parte diferente como validação a cada rodada e calcula-se a média dos resultados. Isso reduz a chance de uma divisão sortuda dar uma impressão errada.
Técnicas para combater o overfitting
- Mais dados. É quase sempre a solução mais eficaz. Com mais exemplos, fica mais difícil para o modelo memorizar o ruído.
- Regularização. Penaliza pesos muito grandes, empurrando o modelo para soluções mais simples. As formas mais conhecidas são L1 e L2.
- Parada antecipada (early stopping). Interrompe o treinamento no momento em que o erro de validação para de melhorar.
- Dropout. Em redes neurais, desliga aleatoriamente parte dos neurônios a cada passo, impedindo que o modelo dependa demais de caminhos específicos.
- Aumento de dados (data augmentation). Gera variações dos exemplos existentes — girar, cortar e alterar o brilho de imagens, por exemplo.
- Redução da complexidade. Menos camadas, menos parâmetros, árvores menos profundas.
Um cuidado extra: vazamento de dados
Existe um problema parecido com overfitting, mas ainda mais traiçoeiro: o vazamento de dados (data leakage). Ele ocorre quando informação do conjunto de teste, direta ou indiretamente, influencia o treino — por exemplo, ao normalizar todas as variáveis usando a média do conjunto completo antes de separar treino e teste.
O resultado é um modelo com métricas ótimas nos testes e desempenho decepcionante na vida real. A regra de ouro é simples: qualquer transformação aprendida a partir dos dados deve ser calculada só com o conjunto de treino e depois aplicada aos demais.
Conclusão
Overfitting e underfitting são dois lados do mesmo desafio: encontrar o nível certo de complexidade para o problema e para a quantidade de dados disponível. Um modelo bom não é o que acerta mais no treino — é o que erra pouco em dados que nunca viu. Quem incorpora essa ideia desde o começo evita os erros mais frustrantes da área.
Para se aprofundar em avaliação de modelos, preparação de dados e projetos práticos de aprendizado de máquina, vale conferir os cursos gratuitos de inteligência artificial e ciência de dados disponíveis na Cursa.



























