We came across this challenge on Kaggle and thought it would be fun to try and implement our own end-to-end method of recommendation using a model that incorporates both collaborative filtering and content based filtering.
What it does
This is a web application with the prototype of users being able to log in and have their past events populated. They would also receive recommendations or suggestions to attend upcoming events that matches their personality or interest based on feedback from past events.
How I built it
Front-end: We started with creation of the login page, and then moved on to incorporating Facebook authentication/login. The web application will communicate with Facebook API to retrieve user’s Profile Picture and Name. Additionally, past events that users have attended and suggested future events for users will be populated on the dashboard, which will be read from a JSON file produced by an algorithm from the back-end. However, due to time factor, it is currently running on test JSON file. With all the events up on the dashboard, whether it being past, present, or future, users are given the opportunity to show their favoritism to events by giving a thumbs up or down.
Back-end: Two out-of-the-box approaches were taken. Collaborative filtering was implemented using the pearson coefficient based on a certain rating metric (ex: interest in event, event attendance) to find people with similar tastes. The filtering was then applied to recommend events to users based on events similar people attended. Content-based filtering was implemented using decision trees as the prediction model. The features for this model consisted of user data (location, gender, birth year, etc), event data (time, location, bag of words to describe each event), event attendees data (response to event if invited),
Challenges I ran into
As a team we often had trouble seeing the same whole picture for the project. We paired up with complementary skillsets and while we had good ideas of what our part of the project would look like and how it would be accomplished, we often had trouble seeing how the pieces fit together. The dataset was very large. We started training the data late, and we were not aware of how long it would take to train and test (even with AWS ).
Accomplishments that I'm proud of
What we learned
Google is always your best friend at any given time. We began exploration in the Facebook developer login app to build on a facebook authentication and pull information from facebook profile API including user’s profile picture. We Gained a deeper knowledge on using and manipulating Python dictionaries
What's next for EventForecast
-Search filter functionality within the web application -Events that are populated on dashboard more fluid -Have web application be more dynamic -Import upcoming events from Facebook to include in interest testing for suggested events -Incorporate geo-location where it will only include events within certain range that the user is willing to travel