Building a Recommendation Engine with NumPy
software-carpentry.org
software-carpentry.org
- If you know nothing about how recommenders might work, a good introductory book is Programming Collective Intelligence.
- To do recommendations at scale, your best bet is to write them in java and run them on Hadoop using map/reduce. You can write them in python too I suppose and use Hadoop Streaming.
- NumPy is awesome. Its a great way to prototype your ideas and if you come from a Matlab background (as I did), its very similar. I have not yet run anything in production using NumPy though.
- If you want a recommender that works out of the box, check out Apache Mahout (used with Hadoop) or the Weka project.
Does this seem to be a worthwhile project?
If you're doing non-matrix (or representing a matrix without a 2d array) recommendation engines then NumPy could be completely useless.
I'm doing research on this exact problem at Carnegie Mellon and we are using a graph to do things instead. We aren't using basic techniques like kNN however, so that may have something to do with it. Instead, we have someone who has done heavy research in submodularity and we're using an approximation algorithm to the submodular function optimization problem.