Contração De Treinamento Quantas Semanas - A Partir De Quantas Semanas Começam As Contrações De Treinamento - RETOEDU
A Partir De Quantas Semanas Começam As Contrações De Treinamento - RETOEDU

O que é contração de treinamento

A contração de treinamento é uma técnica onde você reduz progressivamente a janela de dados usada no treinamento, partindo de um período mais amplo e affinando até chegar nos dados mais recentes e relevantes. É diferente de simplesmente treinar com menos dados — você está literalmente contraindo o universo temporal do que o modelo vê. Isso pode fazer sentido quando seus dados têm uma temporária forte, como logs de produção, séries temporais, ou feeds que mudam de distribuição ao longo do tempo. No meu caso, working com modelos preditivos para operações industriais, eu usei isso num cenário onde os sensores de uma linha de produção tinham um drift claro de média a cada dois meses. Treinar com seis meses de dados era ruído puro porque as condições operacionais haviam mudado. A contração me ajudou a isolar a janela que ainda refletia o estado atual.

Contração de treinamento quantas semanas

Aqui vai a parte prática, que é onde a maioria das pessoas erra. A pergunta certa não é "quantas semanas" de forma isolada — a resposta depende completamente da natureza dos seus dados e da estabilidade do fenômeno que você está modelando. Em termos gerais, comece com quatro a oito semanas como janela inicial de contração e ajuste a partir daí. Eu costumava iniciar com quatro semanas, observar o desempenho em validation, e depois esticar para seis ou oito se o modelo não convergisse. O padrão que funciona para a maior parte dos casos é esse: janela curta primeiro, expanda só se a validação mostrar underfit. Se você pular direto para doze ou dezesseis semanas, vai trazer muita obsolescência junto.

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

O problema que eu encontrei na prática foi específico demais para ignorar. Tínhamos um pipeline onde os dados de treinamento vinham de três fontes distintas com latências completamente diferentes. A contração de treinamento aplicada de forma ingênua — simplesmente fatiar por semanas — quebrou a sincronização entre as fontes. Os dados da fonte mais lenta entravam com até dez dias de atraso em relação à mais rápida. O resultado era um modelo treinado em janelas desalinhadas que performava pior que um modelo baseline com todos os dados brutos. A workaround que eu encontrei foi implementar uma contração por evento, não por tempo. Em vez de dizer "treina com as últimas oito semanas", eu passei a definir "treina com os dados desde o último evento crítico mais recente". Isso eliminou o descompasso porque a janela agora era guiada pela semântica dos dados, não pelo calendário. O tempo médio de treinamento caiu de cerca de três horas para quarenta minutos por fold, e a acurácia subiu de sessenta e dois para setenta e um por cento.

Outra coisa que os tutoriais não contam: contração de treinamento não é boa para todo tipo de dado. Se você está treinando com dados estruturais que não evoluem — tipo classificações de documentos legais, imagens fixas, ou qualquer coisa onde a distribuição não muda com o tempo — a contração não traz vantagem e pode até prejudicar. Você está essencialmente jogando fora dados úteis. O custo-benefício da técnica é diretamente proporcional à taxa de drift dos seus dados. Também vale saber que existe um ponto de inflexão onde a contração passa a prejudicar. Quando a janela fica muito pequena — geralmente abaixo de três semanas na maioria dos datasets reais — o modelo começa a superajustar aos padrões de curto prazo e perde a capacidade de generalizar. Eu vi gente reduzir para duas semanas achando que "quanto mais recente, melhor". Isso só funciona se seu volume de dados por semana for enorme. Com datasets pequenos, a variância vira seu pior inimigo.

Se você quiser testar isso, o fluxo básico é: definir sua janela inicial, particionar cronologicamente, treinar com a janela contraída, validar no período seguinte, e iterar ajustando o tamanho da janela. Sem cross-validation tradicional, porque a ordem temporal importa aqui. Use walk-forward validation em vez de k-fold randômico, senão você estará avaliando o modelo com dados que ele já viu durante o treinamento. Eu costumo recomendar começar com uma validação de cinco folds walk-forward usando janelas de quatro semanas. Se o desempenho oscilar muito entre os folds, aumente a janela. Se estiver estável e bom, tente reduzir para ver se ganha velocidade sem perder qualidade. Isso raramente leva mais de dois dias de experimentação comparado a semanas de treino ingênuo com dados históricos inteiros.