Overfitting

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.

Figura 11. Essa figura contém cerca de 60 pontos, metade deles são árvores saudáveis e a outra metade são árvores doentes.
            As árvores saudáveis estão principalmente no quadrante nordeste, embora algumas árvores saudáveis se infiltrem nos quadrantes de noroeste. As árvores doentes
            estão principalmente no quadrante sudeste, mas algumas delas se espalham para outros quadrantes.
Figura 11. Conjunto de treinamento: locais de árvores saudáveis e doentes em uma floresta quadrada.

 

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.

Figura 12. A mesma disposição de árvores saudáveis e doentes da
            Figura 11. No entanto, um modelo de formas geométricas complexas separa quase todas as árvores saudáveis das doentes.
Figura 12. Um modelo complexo para distinguir árvores doentes de árvores saudáveis.

 

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:

Figura 13. Um novo lote de árvores saudáveis e doentes sobreposto ao modelo mostrado na Figura 12. O modelo categoriza incorretamente muitas das árvores.
Figura 13.Conjunto de testes: um modelo complexo para distinguir árvores doentes de árvores saudáveis.

 

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.

Figura 14. Gráfico cartesiano. O eixo X é rotulado como "qualidade das previsões no conjunto de treinamento". O eixo Y é rotulado como "qualidade das previsões em dados reais". Uma curva começa na origem e aumenta gradualmente,
            mas depois cai com a mesma rapidez. A parte inferior esquerda da curva (previsões de baixa qualidade em dados reais e previsões de baixa qualidade no conjunto de treinamento) é rotulada como "modelos com ajuste insuficiente". A parte inferior direita da curva (previsões de baixa qualidade em dados do mundo real, mas de alta qualidade no conjunto de treinamento) é rotulada como "modelos superadaptados". O pico da curva (alta qualidade
            de previsões em dados do mundo real e qualidade média de previsões
            no conjunto de treinamento) é rotulado como "modelos adequados".
Figura 14. Modelos underfit, fit e overfit.

 

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:

Figura 15. A função de perda do conjunto de treinamento diminui
            gradualmente. A função de perda do conjunto de validação também diminui,
            mas depois começa a aumentar após um determinado número de iterações.
Figura 15. Uma curva de generalização que implica fortemente em overfitting.

 

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

Considere as partições de conjunto de dados a seguir.
Uma barra horizontal dividida em três partes: 70% da barra é o conjunto de treinamento, 15% é o conjunto de validação e 15% é o conjunto de teste.
O que você precisa fazer para garantir que os exemplos no conjunto de treinamento tenham uma distribuição estatística semelhante aos exemplos no conjunto de validação e de teste?
Embaralhe bastante os exemplos no conjunto de dados antes de particioná-los.
Não fazer nada. Com exemplos suficientes, a lei das médias garante naturalmente que as distribuições sejam estatisticamente semelhantes.
Ordene os exemplos do mais antigo para o mais recente.
Um serviço de streaming está desenvolvendo um modelo para prever a popularidade de possíveis novos programas de TV nos próximos três anos. O serviço de streaming planeja treinar o modelo em um conjunto de dados que contém centenas de milhões de exemplos, abrangendo os dez anos anteriores. Esse modelo vai encontrar um problema?
Definitivamente não. O conjunto de dados é grande o suficiente para fazer boas previsões.
Provavelmente. Os gostos dos espectadores mudam de maneiras que o comportamento passado não consegue prever.
Provavelmente não. Os gostos dos espectadores mudam de forma cíclica e previsível. Dez anos de dados vão permitir que o modelo faça boas previsões sobre tendências futuras.
Um modelo tem como objetivo prever o tempo que as pessoas levam para caminhar um quilômetro com base em dados meteorológicos (temperatura, ponto de orvalho e precipitação) coletados ao longo de um ano em uma cidade cujo clima varia significativamente de acordo com a estação. Você pode criar e testar um modelo com base nesse conjunto de dados, mesmo que as leituras meteorológicas mudem drasticamente de acordo com a estação?
Não
Sim

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.
O modelo apresenta baixa perda no conjunto de validação e de teste, mas às vezes faz previsões ruins com dados reais. Por quê?
Clique aqui para conferir a resposta