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

Como incorporar choques em cenários de previsão?

Neste exercício mostramos como incorar choques no cenário de variáveis exógenas para fins de previsão. Usando como exemplo a previsão do IPCA, através de um modelo de machine learning, mostramos os cuidados a serem tomados e uma forma simples de definir o cenário com os choques. Ao final, apresentamos uma previsão com um suposto choque e uma previsão sem o choque para comparação.

Como preparar os dados para um modelo preditivo?

Modelos de previsão macroeconômica podem facilmente alcançar um número elevado de variáveis. Mesmo modelos simplificados, como o Modelo de Pequeno Porte (MPP) do Banco Central, usam cerca de 30 variáveis. Isso impõe um grande desafio ao nosso dia a dia: como fazer a gestão destes dados para uso em modelos, desde a coleta até o tratamento?

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.

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.