Compsci 101, Fall 2012, Recommender Systems

Background

A video describing the Netflix contest and prize.

Collaborative filtering and content-based filtering are two kinds of recommender systems that provide users with information to help them find and choose anything from books, to movies, to restaurants, to courses based on their own preferences compared to the preferences of others.

In 2009 Netflix awarded one million dollars to a group that had developed a better-recommender system than the Netflix, in-house system. This NY Times Magazine article describes the competition, the winning teams, and how the movie Napolean Dynamite caused problems for the algorithms and ranking/rating systems developed by contest participants.

In this assignment, adapated from a Nifty Assignment developed by Michelle Craig, you'll develop a program to test three different algorithms for recommending items based on the responses made by others. You'll be practicing reading data from files, using Python dictionaries and lists, and sorting data to find good matches.

The assignment comes in two conceptual parts:

We're providing two sources of data initially, but we'll solicit ratings from Duke students that you'll process as well. Sometimes ratings are stored in a single file, sometimes in more than one file. You'll need to write a separate Python module to deal with each data source, then use what these modules return to develop ratings.

Recommendations of Ratings

This first set of recommendations for Prof. Astrachan comes from Netflix in 2011. As you can see, these recommendations are based on two movies seen and then all the data Netflix has on similar movies.

netflix

This next set of recommendations is also for Prof. Astrachan for books as reported to him from Amazon, based mostly on purchases for books in Kindle/epub format that he reads when traveling (again, these were from 2011).

amazon


Overview:

A high-level overview of modules is here, links take you to more information for each module in the howto document.

Module BookReader.py:

Module Moviereader.py:

Module Recommender.py:

README/Analysis file:



(Go to howto) (Go to details)


Next 'HowTo'