编程代写 | Dr.T.’s Programming Project #2 (2021)
A person on a business trip wants to grab a bite to eat. However, because the person has just arrived at the current location, they have no information which restaurant in the vicinity they would like. Fortunately, that person has been using a super-duper smartphone app, called “FoodIdLIke” or “FL” for short. Using this app, anyone can find a restaurant they are likely to enjoy based on their prior dining experiences.
In this project, you will implement the backend of “FL”. Your backend will take as input (1) a dataset of this app’s user restaurant ratings, (2) a list of nearby restaurants, (3) a user’s id. Based on this input, your solution is to predict the best restaurant in the vicinity for a given user. The high-level heuristic for the backend is:
1. Given as input:
a. restaurant visit records of all FL users
b. the available restaurants in the vicinity
c. the user id
2. Rate each restaurant in the vicinity by means of collaborative filtering (CF)
3. Recommend to the user the restaurant with the highest rating
All input data will be provided as comma-separated files (CSV). The content and format of these files are specified below.
A file containing a list of restaurants in the vicinity will be formatted as follows
With that information at hand, PL is to select from the list of nearby restaurants the one with the highest rating.
Your heuristic will work as follows:
1. From each list of dining experiences, extract the restaurant ID, price, cuisine, and rating 2. For each restaurant 𝑅!, create a feature vector 𝑉
!, whose length is the total number of
users in the dataset. A feature vector is a N x 1 vector, where N is the number of users, so each entry i holds the rating of user i for this restaurant. If a user does not have a rating for this restaurant, this entry is to be set to 0.