Overfitting significa criar um modelo que corresponda (memorize) ao conjunto de treinamento de forma tão próxima que o modelo não consegue fazer previsões corretas em novos dados. Um modelo superadequado é análogo a uma invenção que funciona bem no laboratório, mas não tem valor no mundo real.
Na Figura 11, imagine que cada forma geométrica representa a posição de uma árvore em uma floresta quadrada. Os diamantes azuis marcam os locais de árvores saudáveis, enquanto os círculos laranja marcam os locais de árvores doentes.
Desenhe mentalmente qualquer forma, como linhas, curvas, ovais...qualquer coisa, para separar as árvores saudáveis das doentes. Em seguida, abra a próxima linha para examinar uma possível separação.
Abra para conferir uma possível solução (Figura 12).
As formas complexas mostradas na Figura 12 foram categorizadas com sucesso, exceto duas das árvores. Se pensarmos nas formas como um modelo, esse é um modelo fantástico.
Ou será que não? Um modelo realmente excelente categoriza exemplos novos. A Figura 13 mostra o que acontece quando o mesmo modelo faz previsões em novos exemplos do conjunto de teste:
O modelo complexo mostrado na Figura 12 teve um ótimo desempenho no conjunto de treinamento, mas um muito ruim no conjunto de teste. Este é um caso clássico de um modelo overfit aos dados do conjunto de treinamento.
Ajuste, overfitting e underfitting
Um modelo precisa fazer boas previsões com dados novos. Ou seja, você quer criar um modelo que "se encaixe" nos novos dados.
Como você viu, um modelo com overfitting faz previsões excelentes no conjunto de treinamento, mas previsões ruins em novos dados. Um modelo subdimensionado nem mesmo faz boas previsões nos dados de treinamento. Se um modelo overfit é como um produto que tem bom desempenho no laboratório, mas não no mundo real, um modelo underfit é como um produto que nem funciona bem no laboratório.
A generalização é o contrário de overfitting. Ou seja, um modelo que generaliza bem faz boas previsões com base em novos dados. Seu objetivo é criar um modelo que se generalize bem para novos dados.
Como detectar overfitting
As curvas a seguir ajudam a detectar o ajuste excessivo:
- curvas de perda
- curvas de generalização
Uma curva de perda mostra a perda de um modelo em relação ao número de iterações de treinamento. Um gráfico que mostra duas ou mais curvas de perda é chamado de curva de generalização. A curva de generalização a seguir mostra duas curvas de perda:

As duas curvas de perda se comportam de maneira semelhante no início e depois divergem. Ou seja, após um determinado número de iterações, a perda diminui ou se mantém estável (converge) para o conjunto de treinamento, mas aumenta para o conjunto de validação. Isso sugere que o modelo está overfitting.
Por outro lado, uma curva de generalização para um modelo bem ajustado mostra duas curvas de perda com formatos semelhantes.
O que causa o overfitting?
De modo geral, o ajuste excessivo é causado por um ou ambos os seguintes problemas:
- O conjunto de treinamento não representa adequadamente os dados reais (ou o conjunto de validação ou de teste).
- O modelo é muito complexo.
Condições de generalização
Um modelo é treinado em um conjunto de treinamento, mas o verdadeiro teste do valor de um modelo é o quanto ele faz previsões em novos exemplos, principalmente em dados reais. Durante o desenvolvimento de um modelo, o conjunto de teste serve como substituto de dados reais. O treinamento de um modelo que se generaliza bem implica as seguintes condições do conjunto de dados:
- Os exemplos precisam ser independentes e distribuídos de forma idêntica, que é uma maneira elegante de dizer que os exemplos não podem se influenciar.
- O conjunto de dados é estável, ou seja, ele não muda significativamente ao longo do tempo.
- As partições do conjunto de dados têm a mesma distribuição. Ou seja, os exemplos no conjunto de treinamento são estatisticamente semelhantes aos exemplos no conjunto de validação, no conjunto de teste e nos dados reais.
Confira as condições anteriores nos exercícios a seguir.
Exercícios: teste seu conhecimento

Exercício do desafio
Você está criando um modelo que prevê a data ideal para os passageiros comprarem uma passagem de trem para uma rota específica. Por exemplo, o modelo pode recomendar que os usuários comprem o bilhete em 8 de julho para um trem que sai em 23 de julho. A empresa de trem atualiza os preços a cada hora, com base em vários fatores, mas principalmente no número atual de assentos disponíveis. Ou seja:
- Se houver muitos assentos disponíveis, os preços dos ingressos geralmente são baixos.
- Se houver poucos assentos disponíveis, os preços dos ingressos geralmente são altos.
Resposta:o modelo do mundo real está com problemas com um ciclo de feedback.
Por exemplo, suponha que o modelo recomende que os usuários comprem passagens no dia 8 de julho. Alguns passageiros que usam a recomendação do modelo compram os ingressos às 8h30 da manhã do dia 8 de julho. Às 9h, a empresa de trem aumenta os preços porque há menos assentos disponíveis. Os passageiros que usam a recomendação do modelo tiveram os preços alterados. À noite, os preços dos ingressos podem ser muito mais altos do que pela manhã.