On our way to QHacks, the national news had reported that heart disease is the second highest cause of death for Canadians. The causes of heart disease are numerous and include factors such as poor health lifestyles or genetic inheritance. We realized that even though some of these causes are unavoidable, steps can be taken in order to decrease one's risk. This led us to the idea of creating a tool which people could use to assess their chances of getting heart disease.
What it does
The sleek iOS app, paired with a Machine Learning model, assesses certain points of an individual's health data in order to predict whether they are currently at risk of heart disease. The app includes the ability to sync with wearable tech such as a Fitbit in order to incorporate efficient analysis with real-time data. Also, records of previous syncs or tests are visualized through graphs so that the user would be able to track their progress throughout their journey to a healthy lifestyle.
How we built it
The Machine Learning Model - We accessed IBM's 2018 challenge to obtain the training data for our training. We used python and other related libraries such as sklearn and pandas to process the data to be trained. Specifically, we used the sklearn library to train a random forest model that achieves 89% accuracy on the testing data.
The iOS App - The app was built completely through Swift on Xcode.
Using the Fireside Database by Firebase, we split data into "Profile" - such as age, height, weight and "Core Data" - palpitations, minutes of exercise/ week etc. This app is linked to a python server hosted by Flask on the backend to be connected to the machine learning model and other resources.
Challenges we ran into
One challenge we ran into was pre-processing the training data. There were a lot of considerations to be made, such as which model to use, and if we should bin certain input parameters. We started with a Logistic Regression model but it suffered from accuracy. We next attempted a random forest model which gave us an acceptable accuracy and showed no signs of over-fitting.
Another challenge was learning new things on the spot. Most of us had some experience but overall, between building machine learning models, hosting backend servers and designing the front-end, all of us took on a challenge this weekend and learned a lot from each other and individually.
Accomplishments that we're proud of
We built a fully functioning application using the newest frameworks and technologies which ultimately has the potential to help people.
What we learned
The importance of designing was an especially important lesson that we learned this weekend. At the very start of the project, we drew out the entire workflow process and program architecture at a high level. This allowed us all to agree on how the modules would be structured and took out the ambiguity that often exists when working in a team. Speaking of teamwork, we definitely learned a lot in that regard as we split up work and took on our respective roles.
What's next for cor.ai
Our next steps include expanding our app to fully include various wearable devices in order to maximize user benefits. We also plan to expand are input parameters using fields that users' will have an easier time accessing (removing cholesterol). Furthermore, for those at risk of heart disease, we want to provide mitigating steps specific to that person's profile. This can include showing the location of a nearby gym for those exercising too little, or suggesting healthier foods and recipes to lower cholesterol.