As soon as MHacks started, one of our core team members came down with something (mumps? o.O). We knew we wanted to explore machine learning at MHacks, so we set off on our quest to apply machine learning models to diagnose illnesses based off known symptoms. In order to save her life and the lives of countless others, we developed a personal Disease Detective accessible to everyone through their phones.
What it does
Anybody with a phone can text and interact with our simple Disease Detective chat bot. Upon first running the program, our chat bot prompts the user for their symptoms. Our Disease Detective program will predict the probable disease based off 10,000 cases of training data. Our chat bot will diagnose you within seconds!
How we built it
We used Python to develop our chat bot and machine learning program. We split up our project into two files, one for sending and receiving texts, and one for training a machine learning model. To set up the chat bot, we used the Twilio API for an easy solution to sending and receiving texts. To set up our machine learning model, we used TensorFlow, Keras, NumPy, and more to read in data from CSV files, prepare the data as NumPy arrays, build a sequential learning model with 3 densely connected Keras layers, and predict outcomes based off texts.
Challenges we ran into
As a team of sophomores and freshman with very limited coding experience, we ran into EXTREMELY many challenges. None of us had any experience coding in Python, let alone machine learning, TensorFlow, Keras, Twilio and more. We soon found out that while TensorFlow was code-light, it was concept-heavy. We spent most of our time developing the idea and conceptualizing how our machine model would work. After countless bugs and 24/7 tests, we managed to produce a working prototype.
Accomplishments that we're proud of
Our proudest moment was getting a simple sequential model to produce an output based off data inputs. We were afraid of committing to finding a 5000+ case dataset without a working ML model. But we soon found out we could not test our TensorFlow model without an enormous data set. We learned that producing a working model was mostly about processing the data and laying out the concept. We are proud to have solved problems like these throughout MHacks.
What we learned
We learned how to use the Twilio API to send and receive text message using code. Going through the Twilio API tutorials also taught us about setting up virtual environments and using local servers. After studying TensorFlow, we learned how machine learning models work to produce output based off data input. Our project specifically focused on classification style machine learning models which have their own set of characteristics. We learned how to use the Keras API with TensorFlow to import data, prepare the data, build a model, compile the model, train the model, test the model, evaluate the accuracy, and predict the outcome. We experimented with different learning models, different numbers of layers, and different numbers of nodes to see what circumstances would optimize which machine learning models. We learned about machine learning datasets, Keras.data, and Panda to read CSV files and import them as training data.
What's next for Disease Detective
Our next steps are to develop a more robust machine learning model. Our model can only handle specific symptoms focused mainly around food-borne illnesses. We want to expand our model to be able to account for a variety of text messages from the user and a variety of symptoms. Getting our own real data to train the model would be a great way to do this.