Transfer Learning para Previsão de Séries Temporais com o Python

A aprendizagem por transferência (ou transfer learning) é a técnica de reutilizar um modelo previamente treinado em um novo problema. Esse conceito representa um grande avanço para a previsão de variáveis, especialmente aquelas organizadas ao longo do tempo, como séries temporais. Neste post, exploramos como usar transfer learning com Python para trabalhar com esse tipo de dado.

O que é Transfer Learning?

Transfer learning é o processo de aproveitar um modelo treinado em uma tarefa para aplicá-lo a um novo problema, geralmente relacionado. Essa abordagem é extremamente útil na ciência de dados, especialmente em situações em que não há uma grande quantidade de dados rotulados disponíveis para treinar modelos complexos.

Embora o transfer learning não seja uma técnica de aprendizado de máquina por si só, ele é uma metodologia de design muito popular, principalmente quando combinado com redes neurais profundas, que exigem grandes volumes de dados e poder computacional. Essa prática permite acelerar o treinamento de modelos e melhorar a performance quando os dados são limitados.

Como funciona?

No transfer learning, o conhecimento de um modelo treinado é transferido para um novo problema, com o objetivo de melhorar o desempenho na nova tarefa. Por exemplo, se você treinou um modelo para classificar imagens que contenham mochilas, pode usar esse modelo para identificar outros objetos, como óculos de sol. O que o modelo aprendeu na tarefa anterior (identificação de mochilas) pode ser reaproveitado para identificar objetos relacionados de maneira mais eficiente.

O conceito fundamental é que o aprendizado obtido em uma tarefa com muitos dados pode ser transferido para uma nova tarefa com menos dados, evitando a necessidade de treinar um modelo do zero. Ao aplicar esse conhecimento pré-existente, podemos melhorar a capacidade de generalização do modelo na nova tarefa.

Para que é utilizado?

Embora o transfer learning seja amplamente utilizado em áreas como Processamento de Linguagem Natural (NLP) e Visão Computacional, ele também pode ser aplicado a séries temporais. Dado que muitos dados econômicos e financeiros são naturalmente estruturados em séries temporais, essa técnica se torna uma poderosa ferramenta para previsão e análise desses dados.

Como aplicar em Séries Temporais?

Para obter o código e o tutorial deste exercício faça parte do Clube AM e receba toda semana os códigos em R/Python, vídeos, tutoriais e suporte completo para dúvidas.

O uso do transfer learning em dados de séries temporais pode ser feito com a ajuda de bibliotecas como o mlforecast em Python. Esta biblioteca facilita a implementação dessa metodologia, permitindo que modelos treinados em conjuntos de dados relacionados sejam aplicados a novas séries temporais com maior precisão.

Passo 1: Treinamento do Modelo

Primeiro, é necessário "pré-treinar" o modelo utilizando um conjunto de dados amplo, contendo diversas variáveis de séries temporais. Com os resultados do modelo pré-treinado, podemos então aplicar o aprendizado para treinar o modelo na variável de interesse.O modelo pré-treinado será baseado nas variáveis de periodicidade mensal do conjunto de dados da competição M3, que pode ser facilmente importado por meio do módulo M3 da biblioteca datasetsforecast.Abaixo, estão algumas das variáveis presentes no dataset da M3. É possível observar uma diferença significativa nos processos geradores de dados das séries temporais.

Treinamos o modelo utilizando 1000 variáveis com o algoritmo LightGBM, tomando como features a primeira e a décima segunda diferença, além da defasagem de um até treze. Com isso, estamos assumindo que as séries podem ser previstas com base em seus próprios padrões históricos.
Passo 2: Transferência do treinamento para a variável de interesseApós treinar o modelo em um conjunto de dados amplo, podemos “transferir” o aprendizado para prever os valores da variável de interesse.

Para validar a precisão das previsões, realizamos a separação entre os conjuntos de treino e teste utilizando o dataset AirPassengers.

unique_id ds LGBMRegressor
0 AirPassengers 1960-01-01 422.740112
1 AirPassengers 1960-02-01 399.480225
2 AirPassengers 1960-03-01 458.220337
3 AirPassengers 1960-04-01 442.960419
4 AirPassengers 1960-05-01 461.700500

 

Passo 3: Avaliação dos Resultados
Por fim, realizamos a comparação entre os dados de treino e teste para avaliar a precisão das previsões geradas pelo modelo.



Considerações

O Transfer Learning é uma metodologia de design amplamente utilizada na Ciência de Dados, especialmente nas áreas de NLP (Processamento de Linguagem Natural) e Visão Computacional, sendo fundamental quando a quantidade de dados rotulados é limitada.

O mais interessante dessa abordagem é a possibilidade de aplicar a ferramenta a diferentes tipos de dados, como séries temporais. O principal desafio está na obtenção do modelo pré-treinado, que requer uma grande quantidade de variáveis para o treinamento. Além disso, a transferência de modelos só é eficaz quando os inputs do novo problema são compatíveis com os utilizados no treinamento inicial.

Referências

Nixtla. How-to-guides: Transfer Learning. Acesso em: https://nixtlaverse.nixtla.io/mlforecast/docs/how-to-guides/transfer_learning.html

Donges, Niklas. What is Transfer Learning? Exploring the Popular Deep Learning Approach. Acesso em: https://builtin.com/data-science/transfer-learning

Quer aprender mais?

Conheça nossa Formação do Zero à Análise de Dados Econômicos e Financeiros usando Python e Inteligência Artificial. Aprenda do ZERO a coletar, tratar, construir modelos e apresentar dados econômicos e financeiros com o uso de Python e IA.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Qual o efeito de um choque de juros sobre a inadimplência?

Neste exercício, exploramos a relação dinâmica entre o custo do crédito (juros na ponta) e o risco realizado (taxa de inadimplência) através de uma análise exploratória de dados e modelagem econométrica utilizando a linguagem de programação R.

Qual a relação entre benefícios sociais e a taxa de participação do mercado de trabalho?

Este exercício apresenta uma investigação econométrica sobre a persistente estagnação da taxa de participação no mercado de trabalho brasileiro no período pós-pandemia. Utilizando a linguagem R e dados públicos do IBGE e Banco Central, construímos um modelo de regressão linear múltipla com correção de erros robustos (Newey-West). A análise testa a hipótese de que o aumento real das transferências de renda (Bolsa Família/Auxílio Brasil) elevou o salário de reserva, desincentivando o retorno à força de trabalho.

Estamos em pleno emprego no mercado de trabalho?

Este artigo investiga se o mercado de trabalho brasileiro atingiu o nível de pleno emprego, utilizando uma estimativa da NAIRU (Non-Accelerating Inflation Rate of Unemployment) baseada na metodologia de Ball e Mankiw (1997). Através de uma modelagem em Python que unifica dados históricos da PME e PNAD Contínua com as expectativas do Boletim Focus, comparamos a taxa de desocupação corrente com a taxa neutra estrutural. A análise visual e quantitativa sugere o fechamento do hiato de desemprego, sinalizando potenciais pressões inflacionárias. O texto detalha o tratamento de dados, a aplicação do Filtro Hodrick-Prescott e discute as vantagens e limitações da metodologia econométrica adotada.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.