Aplicando simulações de previsão do COVID-19 com o Facebook Prophet

Introdução

Muito se tem falado sobre o Machine Learning e este artigo tem como objetivo principal, resumir o conceito desta abordagem e demonstrar um caso prático de previsão, dentro do complexo e relevante cenário da pandemia do COVID-19 que estamos vivendo. Será utilizado o Prophet, projeto open-source do Facebook, para a demonstração de uma aplicação prática. É importante salientar que este artigo se trata apenas de um exemplo de aplicação deste framework e os seus resultados não devem ser considerados como válidos para qualquer tipo de decisão.

O que é aprendizado de máquina?

É a ciência (e a arte) da programação de computadores para que eles possam aprender com os dados.

Um exemplo muito evidente de aprendizado de máquina, é o filtro de spam, que pode aprender e assinalar e-mails como spam e não spam. Durante este processo, existe alguns componentes:

  • Conjuntos de treinamento: são os exemplos utilizados pelo sistema de treinamento.
  • Amostra: é cada exemplo do conjunto de treinamento.
  • Acurácia: é a taxa de assertividade do algoritmo treinado.

Tipos de Sistemas de Aprendizado de Máquina

Existem muitos tipos diferentes de sistemas de aprendizado de máquina e neste artigo, será descrito os dois sistemas principais: aprendizado supervisionado e aprendizado não supervisionado.

Aprendizado Supervisionado

No aprendizado supervisionado, os dados de treinamento que você fornece ao algoritmo incluem as soluções desejadas, chamadas de rótulos.

A classificação é uma tarefa de aprendizado supervisionado. Como exemplo, temos o filtro de spam, onde existem vários e-mails que são classificados como spam e não spam.

Prever um valor numérico é outra tarefa típica de aprendizado supervisionado. Como exemplo, temos a previsão do preço (label) de um determinado carro, baseado em um conjunto de características (ex.: modelo, ano de fabricação, quilometragem, etc) denominadas de previsores.

Segue a lista de alguns algoritmos do aprendizado supervisionado:

  • KNN – K Nearest Neighbours
  • Regressão Linear
  • Regressão Logística
  • Máquinas de Vetores de Suporte (SVM)
  • Árvores de Decisão e Florestas Aleatórias

Aprendizado Não Supervisionado

No aprendizado não supervisionado, os dados de treinamento não são rotulados, ou seja, o sistema tenta aprender sem um professor.

Uma importante tarefa e muito utilizado nos dias atuais, que representam um bom exemplo de aprendizado não supervisionado, é a detecção de transações incomuns em operações de cartões de crédito para evitar a ocorrência de fraudes, onde o sistema é treinado com instâncias normais e quando vê uma nova instância, pode dizer se ela parece normal ou se é uma provável anomalia.

Outro exemplo muito utilizado, é o de detecção de semelhanças em grupos de usuários que visitam um determinado blog. Neste caso, temos a aplicação de um algoritmo de clustering. É muito importante a detecção dos grupos que frequentam determinado blog, para que seja realizado o processo de segmentação das postagens para cada grupo de visitantes.

Segue a lista de alguns algoritmos do aprendizado não supervisionado:

  • K-Means
  • Clustering Hierárquico

Estudo de Caso

Como forma de melhor entender a utilização dos algoritmos de máquina, será mostrado a resolução de um problema de regressão e para facilitar ainda mais o entendimento do autor, será apresentado o algoritmo Prophet, projeto opensource do Facebook.

Cenário

Foi realizado uma projeção de 30 dias com relação aos casos confirmados do COVID-19, a partir do dia 13-09-2020. O objetivo principal é saber se nos próximos 30 dias, teremos uma estabilização dos casos confirmados.

URL do data-set: https://data.brasil.io/dataset/covid19/_meta/list.html (arquivo caso.csv.gz) extraído em 14-09-2020 às 00h47m

Prophet

Prophet é um algoritmo de previsão implementado em R e Python, mas especialmente neste artigo foi utilizado a implementação em Python. Ele é rápido e fornece uma completa automação do processo de previsão que pode ser utilizado por cientistas e analistas de dados.

O Prophet é um projeto open source do time de Cientistas de Dados do Facebook.

O Prophet segue o mesmo princípio dos algoritmos do Scikit Learn (https://scikit-learn.org/). Resumidamente temos os seguintes passos:

  1. Cria uma instância da classe Prophet
  2. Chama o método “fit” para o treinamento do modelo
  3. Chama o método “predict” para a realização da previsão

Os parâmetros de entrada do Prophet sempre serão um dataframe com duas colunas: ds e y.

  • ds: é um datestamp e deve ter o formato esperado pelo Pandas, idealmente YYYY-MM-DD para uma data ou YYYY-MM-DD HH:MM:SS para timestamp.
  • y: deverá ser numérico e representa a medida que desejamos prever.

Aplicação do Prophet no Cenário

Captura de Tela 2020-09-16 às 19.08.52

Resultados

Na tabela a seguir é mostrado os últimos quatro registros de toda a tabela de resultados. Observe que a saída dos dados da previsão é mostrada seguindo as seguintes colunas: yhat_lower (previsão baixa), yhat (previsão média) e yhat_upper (previsão alta). Considerando o número de casos confirmados apurados no dia 13-09-2020 que são de 163535, se comparado a quantidade de casos confirmados apurados no dia 13-10-2020 que serão aproximadamente 224230 se considerado a previsão média, então teremos um crescimento considerável de casos confirmados.

Captura de Tela 2020-09-16 às 19.07.04

Referências Bibliográficas