Book review: Programming Collective Intelligence: Building Smart Web 2.0 Applications

The book description was really appetizing: Machine Learning applied to the Internet, so it should be easy to understand, and Python as the mean to compute. Unfortunately, contrary to what I saw in different reviews, I was not pleased with the book, and here is why.

Machine learning is a difficult topic. I can understand that there is need for a introductory book. The need is there (it can be seen on the O’Reilly comments of the book). But need does not imply not thorough:

  • The tools of the book can be dangerous. Neural networks are regularly debatted, and the litterature is very dense. You cannot expect to understand neural networks with only a chapter. And this applies to every other tool (multidimensonal scaling, …).
  • There are no references, no bibliography to help if you encounter a problem. Say you apply neural networks as explained in the book. You get a result you don’t expect. Where do you turn to to have an explanation? In such a book, you have to give references.

Another point is that the code quality is bad. Really bad. If you do machine learning, you use the appropriate Python tools, i.e. Numpy. Besides there are a lot of additional modules to help using machine learning.

I know it’s difficult to write a book and to think about everything: I’ve gone through that path. But if you want to write an ambitious book and if you fail to meet the requirements, you must expect some bad reviews 😉

Such a book should be bigger, far bigger. If you want a real book about Machine Learning, get Pattern Recognition and Machine Learning from Christopher Bishop. And if you want to apply your findings to the web, well, there are a lot of books on web analysis.

2 thoughts on “Book review: Programming Collective Intelligence: Building Smart Web 2.0 Applications”

  1. Hi Matt,

    I agree with your assessment. A lot of the methods in this book are pretty basic, but many of the non-trivial methods that require a lot more knowledge in order to apply effectively. Neural networks on the surface look like a handful of nifty equations but there’s an extensive body of literature spanning at least 10 years surrounding how to effectively optimize them, the key ideas of which could easily fill an entire book this size. Support vector machines are a little bit easier to use even if you don’t know what you’re doing, but your choice of kernel is going to make

    And yes, the Bishop book really is a classic 🙂

Leave a Reply