Inspiration and what it does

We wanted to make a tool to help people see the spread of COVID-19, how the number of cases would change in the near future, and the contributing factors to the change in cases. Although there are frequent updates on coronavirus spread, the current data visualization tools do not use machine learning (ML) to show the predicted COVID-19 cases. Therefore, we wanted to create a comprehensive, but easy-to-use, COVID-19 app, that provides data visualizations of COVID-19 and COVID-19 predictions.

The data visualizations we provide are: (1) a map of Michigan, where green regions indicate a lower COVID-19 case count, and red indicates a high COVID-19 case count; (2) a similar Michigan map, but showing the predicted trend in COVID-19 cases in the next 5 days; (3) when click on a county in the map, users can see a line graph of the daily cases in COVID-19 on the right; (4) for a selected county, the unemployment rate is shown over time, with data from the Bureau of Labor Statistics; and (5) at the bottom right the demographics of the selected county are shown.

How we built it

We deployed the app/site using GitHub pages. The data visualizations were built in D3.js, Bootstrap, and Javascript/CSS. The data shown on the site was first collected from various sources (links to them are on the site), including the NYTimes COVID-19 dataset, Bureau of Transportation Statistics, U.S. Census Bureau, and U.S. Bureau of Labor Statistics. This was pre-processed using R and Python, to clean up any extra data and columns, and reformat it for use in data visualization and machine learning. The machine learning models were built in Python, using scikit-learn, where we sampled four different models (Boosted Decision Trees, Support Vector Machine, Naive Bayes, and Logistic Regression) and selected the one that had the best performance. The machine learning model uses the COVID case data from a set window of days (e.g., 5 days), learns the trend of cases in those 5 days, and predicts the number of cases in the next five days. Other data such as the number of trips (from the Bureau of Transportation statistics), were incorporated to make better predictions.

Challenges we faced

First, we had trouble designing the UI. With multiple graphs, it was important to structure the app so the user can easily interpret the information. Second, we had difficulty training and designing the machine learning model. Using a neural network, such as an LSTM, could yield better results in time-based forecasting predictions.

What we learned

While we were developing the app, we learned a lot about D3.js, Bootstrap, Git, and machine learning!

What's next

In the future, we hope to expand the COVID prediction model for more accurate predictions, and adding more data visualizations to see other COVID-related trends, such as the use of masks.

Share this project: