Mike is visiting for Spring break, so naturally we've spent the whole time coding. We've started a few projects, and we've just made the first of them available.

consensus is a collaborative filtering library for Python. It implements three different filtering models, and makes it easy to implement more. We're no experts on the subject, but the results seem pretty good.

As an example, we wrote a little script to harvest data from thousands of AudioScrobbler users, starting with myself. All three models yielded similar results with lots of overlap. Based on my AudioScrobbler profile (which hasn't been updated in at least a year), our models suggested these additional artists:

  • Sufjan Stevens
  • Elliott Smith
  • Broken Social Scene
  • Belle and Sebastian
  • The Beatles
  • Interpol
  • Wilco
  • The Decemberists
  • Bright Eyes
  • Beck
  • Death Cab for Cutie

Not bad! There is some overlap with AudioScrobbler's suggestions, so we must be doing something right. We're not sure what fancy algorithms they're using, but based on which suggestions we determined I would actually like, our models had a higher success rate. But who knows, if we had a larger data set, maybe they'd be the same...

Anyway, if you'd like to install the latest release of consensus, just use setuptools:

sudo easy_install consensus

Update: Both consensus and easyBay are now on the Cheese Shop.