Inspiration

A number of studies have shown that pregnant women living in low- and middle-income families are more likely to suffer from or even die of known and preventable complications of pregnancy and childbirth. This is mostly caused by inadequate access to medical care and lack of awareness of the risks that affect maternal mortality. Therefore, we hoped to build an intuitive tool to help said individuals to monitor their health and give general advice based on several risk factors.

What it does

Our site allows users to input variables such as age, blood pressure, and resting heart rate and utilizes a machine learning algorithm to calculate and output health risk level. This risk level is accompanied by advice on how to stay healthy or provides a recommendation to seek medical attention if their risk level is high. This website is specifically catered towards pregnant women, especially in disadvantageous areas where direct access to a doctor can be difficult.

How we built it

The entire front-end of the program was created with a combination of CSS, Javascript, and HTML. Javascript and the jQuery libraries were used to validate the users’ input data and send it to our backend REST API. We used Python using the FastAPI library to build the backend API server. The server process uses a machine learning model (our algorithm is a support vector machine with an rbf kernel built with scikit-learn) built with scikit-learn to predict health outcomes for our users. The backend api server and the machine learning inference happen on Google Cloud. We used a Google Compute Engine server.

Challenges we ran into

Since it is a classification machine learning problem, we thought we would use a multiplayer perceptron (MLP) model first. But after trying a number of different data per-processing and parameters in PyTorch, we decided that MLP is probably not the ideal model for this problem. So then we tried a Gaussian Naive Bayes network, a support vector machine (SMV) with different kernels and finally got our model now.

Accomplishments that we're proud of

For the frontend, we vastly improved our grasp of html and css, learned the intricacies of form use and validation, and learned how to link together the frontend of a program with a server and its API using fetch. We are proud of how we were quickly able to set up a server to host our site as well as build an api server. For machine learning, we explored a number of different classification models. We are proud of having been able to do so much in a short amount of time.

What we learned

We learned how to become better communicators. From the planning stage to the implementation of our website, letting one another know their progress and challenges was crucial to our development of the website. As for the technical side, we realized that it is a good strategy to use sklearn to quickly build a model prototype to test it’s plausibility and then use PyTorch to fine tune it or add more features.

What's next for Riskquipo

In the future we could improve the accuracy of the machine learning algorithm by collecting more data and expand our dataset to include the assessment of the health risk level of the general public. And we could try to connect the health metrics on smartwatches to our assessment tool and/or build an affordable wearable device that collects the health metrics needed for our assessment.

Share this project:

Updates