And the winner is...

It's been a long day, but it looks like this is working exactly how I'd like. The training data has ~50% accuracy, so I'll assume that an arbitrary set like `test_data.csv` will have a *much* lower probability for people to become friends. I've picked the 6 strongest matches according to my algorithm, which basically places the `training_data.csv` about 20x more probable to produce friendships than `test_data.csv`, which seems totally reasonable for being arbitrary.

![screen shot 2013-12-08 at 9 11 30 pm](https://f.cloud.github.com/assets/537700/1702097/4362d0d2-6080-11e3-9b7b-6da4ac1aa1e7.png)

The algorithm is pretty quick, and doesn't actually need the 1024MB of memory that I allocated. Anyway, this should do it – thanks for putting up the challenge!