Inspiration

Our team was inspired by a dataset we came across when searching through Kaggle, a data science platform. We found a dating profile dataset and were curious of how we could apply our Machine Learning and algorithmic computer science skills to create a site that would fit into the theme of Valentine's.

What it does

Our name (Amorus) is a play on words, 'amorous' pertaining to love, combined with 'virus', coming together to signify how love spreads like a virus. Our website takes in user input on a random set of 20 profiles out of 60,000, and trains a regression model to calculate the strength of compatibility a user would feel toward another. By doing this, it creates a graph of all remotely compatible profiles, where each profile is a node, the farther a profile is on the graph from the user node, the less compatible they would be.

How we built it

We built Amorus by using the Python Tensorflow libraries to make a linear regression model to determine how likely people are to like each other. Then, we used a breadth-first search algorithm with weighted nodes in order to find the connectedness and compatibility of different people. On the front-end, we used HTML and Bootstrap in order to create a proper website where the user can find others like themselves.

Challenges we ran into

One of the challenges of creating amorus were the various libraries we had to learn. For example, we had to learn tensorflow, pandas, sklearn, flask, and gain a more in depth knowledge of programming languages such as CSS, HTML, and Python. Other challenges were figuring out the structure of the code and making sure that everything fit together in a logical and optimal fashion because we had 60 thousand users represented in the site.

Accomplishments that we're proud of

There were many small accomplishments along the way as we created the frontend and backend. Expanding out minds through learning new languages was one of the most satisfying things that we took away from the project. It was a joy to finally learn that linear regression models could be saved locally and then reloaded in the future for example, and realizing how to make sites run functions and other python scrips on the backend. Everytime we resolved a runtime error and learned new stuff, a smile appeared on our faces.

What we learned

While doing this project, we learned a multitude of things. First of all, we learned how to make a machine learning algorithm with tensorflow in Python which can find a linear regression model. We also learned how to code various algortihms to search for smallest paths between nodes. Finally, we learned how to link HTML and Python in order to create an interactive website.

What's next for Amorus

In the future, we will refine the matchmaking feature of Amorus, and we may add some more functions to the site, such as recommended gifts for others, and creating reservations for possible dates or outings with friends.

Built With

Share this project:

Updates