Que tal pedir ajuda do Profeta?


Introdução Uma análise de séries temporais tenta estudar o comportamento dos dados, ao longo do tempo, de forma a compreender a estrutura que gerou a série. O objetivo é construir um modelo matemático a partir do qual seja possível prever os valores futuros da série.Em fevereiro de 2017 o Facebook Research lançou a ferramenta open source chamada Facebook Prophet para forecasting (previsão).A ferramenta permite gerar previsões e cenários futuros para séries temporais. Algumas das suas vantagens são:1) análises diárias, semanais e mensais com alguns meses de histórico 2) sazonalidades por dia da semana e época do ano 3) feriados importantes com intervalos irregulares 4) mudanças de tendência bruscas e outliersA biblioteca em Python oferece diversos parâmetros para ajustar e testar o modelo, por exemplo, especificando feriados. Chega de história e vamos codar!

Image for post
Photo by Safar Safarov on Unsplash

Instalação

1) Para o exemplo eu utilizei o Google Colab, instalei primeiro a lib Pystan e em seguida a FB Prophet:

Image for post

Importação das libs

2) Importei as libs abaixo para processar, treinar, criar e plotar a previsão:

Image for post

Importação dos dados

3) Importei também o arquivo milk.csv disponível em: https://raw.githubusercontent.com/Sagu12/FBPROPHET-TIME-SERIES-FORECASTING/main/milk.csv para visualizar a previsão da produção mensal de leite por ano.

Image for post

Verificando o tipo dos dados

4) É importante verificar quais os tipos de dados da amostra e fazer a conversão se necessário. Neste exemplo, será preciso transformar a coluna mês no tipo data.

Image for post

Convertendo o tipo dos dados

5) É importante nomear as colunas com os rótulos ds e y. E em seguida converter a coluna ds para datetime.

Image for post

Checando se está tudo ok pro treino!

6) Antes de iniciar o treinamento do modelo é preciso verificar se está tudo certinho com o dataset. Vamos de .head() e Voilà!

Image for post

Importando a FB Prophet e treinando o modelo

7) Vamos importar a FB Prophet e verificar o que o algoritmo é capaz de fazer. Uma diferença em relação a outros algoritmos de machine learning é que você roda todo o conjunto de dados e não divide entre treino e teste (70%/30%).

Image for post

8) A próxima etapa é iniciar o treino do modelo e dar um fit no dataframe!

Image for post

De volta pro futuro!

9) Aqui você lembra do filme 😉 Vamos declarar o futuro e criar as previsões com os dados no dataframe.

Image for post

Fazendo as previsões

10) Com o dataframe do futuro criado é possível gerar as previsões. O resultado apresenta uma série de possibilidades e análises. Vamos selecionar apenas as colunas ds, yhat, yhat_lower e yhat_upper da tabela exibida abaixo:

Image for post
Image for post

Plotando o output

10) Nesta etapa podemos ver as previsões feitas pela lib. As linhas pontilhadas são os dados reais informados no treino e a linha azul é a previsão:

Image for post

Tendência dos dados

11) Por último podemos visualizar a tendência dos dados em relação ao ano e aos meses do ano. O primeiro gráfico representa a tendência crescente com o decorrer dos anos e o último exibe uma flutuação nas vendas mensais:

Image for post

Conclusão

É possível verificar como é simples usar a biblioteca FB Prophet em Python para fazer previsões de séries temporais. No exemplo do estudo fizemos a previsão da produção de leite para os próximos anos. Uma das formas de aperfeiçoar os resultados é realizar a validação cruzada (cross-validation) e calcular outras métricas de performance como a MSE, RMSE, MAE, MAPE etc. Que tal explorar mais os seus dados? O que eles podem dizer sobre um negócio e as próximas decisões? Se quiser trocar mais, conversar sobre dados, Python e Dashboards, pode me add no Linkedin ou Twitter. Boas análises e vamos juntos!

Meu código: https://github.com/CarolBragaRJ/analisedadospython/blob/master/facebook_prophet.ipynb

Fonte: https://www.analyticsvidhya.com/blog/2020/10/time-series-forecasting-using-facebook-prophet-library-in-python/

Artigo postado originalmente: https://medium.com/data-hackers/que-tal-pedir-ajuda-do-profeta-926924c26508

#bigdata #cienciadedados #analytics