Wednesday, January 09, 2008

Programming Collective Intelligence Review

Last week I wrote about the three books that O’Reilly sent me, and reviewed Data Visualization. In that review, I promised that I’d be reviewing the other two shortly. Here’s the first of those reviews.

Programming Collective Intelligence isn’t a book that lends itself well to review. Not that it’s a bad book, but because it takes a while to get through and really grok the material. This is a dense volume, which uses a lot of code to get its point across. That’s a good thing, because this is important (if difficult) material.

The book begins with a 5 page introduction and wraps up with a 32 page summary 9(and two appendices taking up 24 pages) which sandwich 270 pages (10 chapters) of great material covering:

  • recommendation systems
  • data clustering
  • searching and ranking
  • optimizing collaboration problems
  • filtering
  • decision trees
  • price models
  • advanced classification
  • data extraction and characterization
  • genetic programming

I’ve learned a lot from this book already (I’ve skimmed the whole thing, and read the first three chapters in some depth), but I can tell it’s going to take some sustained work to really get the most from it. I know that members of the Seattle.rb are organizing a study group, and are planning on translating the code examples from python to Ruby as they go—perhaps we should work on something similar here in Utah or maybe in a google group on-line.

So far, I’m finding the book well written with clear examples. I love the exercises at the end of each ‘content’ chapter. I also think Toby did a great job finding sample problems for each of the topics he covers (and pointing out other way in which the approach might be applied).


Anonymous said...

I'm reading this book too. I found most recommendation engines available are written in Java. It would be cool to see a Ruby implementation

willCode4Beer said...

... or use jRuby to exploit the ones that have already been written