|
Examples are taken from the Web domain so this text can be very useful for people interested in combining BI and AI, among others. I am not completely finished reading it but I already think it's a great introductory book which is strongly committed with transmitting intuition and comprehension of its material (machine learning) usually hard for regular people. It focuses mainly on implementation and application but some general coverage of the underlying theory is done to motivate inexpert readers. Personally, I approve using Python, which is not (yet) my favorite language, I consider it actually as a plus because it complements very well author's intention of simplicity which is all over behind the book design. This book seems to me like an excellent old school teacher among those ones who really take the right timing and words for carefully explaining you something probably difficult in an easy way so that you really will want to learn more about it.
This book provides good coverage of areas essential to modern web sites. Some complex topics are covered in a manner that anyone can understand. I used this book to suppliment my college material and it helped me understand Gentic Algorithms, Path Finding and other algorithms by giving practicle examples of their use. A must have for any software professional.
The drawback is that while the book does a good job of teaching the basics, the algorithms and implementations may be too simplistic for use in a real project.Python is a good language for code examples, but the code in this book is often a bit too terse (e.g. This book shows how to implement basic algorithms for clustering, optimization, decision trees etc. It's great to have an accessible algorithms book that doesn't just cover sorting algorithms. single letter variables or lists of unnamed parameters), and there are quite a few mistakes in the code.The "collective intelligence" title and "web 2.0" connection are a bit tenuous. For the most part the algorithms are developed from scratch, unlike e.g. in Manning's "Collective Intelligence in Action", which is more of a tutorial on using existing data mining libraries. There are some examples where a Web API is used as a source of data, and no doubt some of the algorithms in this book can be useful in such applications. But this is clearly a book about general-purpose algorithms, and not a book about building Web 2.0 sites.
I was recommended to buy this one by my instructor. The machine learning approach was fantastic. I wanted a book which described the approaches for building applications in web 2.0. This book exactly served my purpose. The book was delivered on time without any issues. I received it in perfect condition.
On the bright side, though, this is a great introduction to recommender systems and the algorithms used in the collection and analysis of web data. As the author states, Python reads almost like pseudocode, with "almost" being the operative word here. First off, I think you should be familiar with the general principles of artificial intelligence as covered in Artificial Intelligence: A Modern Approach (2nd Edition), and I think you should also be familiar with the theory of algorithms as covered in Introduction to Algorithms, Third Edition. The problem with most of the books on collective intelligence is that they are either doctoral theses - or should be - or they are very elementary books written for people using software packages that do the analysis for them, thus exposing few details.
Finally, the author minimizes the experience you should already have with Python. In the preface I think that the author minimizes the experience a reader must have to get the most out of this book. The author clearly states the principles and uses of each algorithm and puts in bits of code as he goes. Of course, what I think is possible doesn't matter, the question is answered if I am able to implement a solution or at least sketch one out. Just using plain pseudocode or a language that most are familiar with such as C would have been better.
The illustrations are also excellent. There are no answers to exercises here, so you'll never know if you are right unless you do implement a solution that answers the question. These are both largely language agnostic books, and I think these types of books do the best job at teaching computer science theory. This book strikes a great balance and hits the target for the professional who needs to learn this material quickly. The author does not give you enough background on Python that you can pick this book up cold and not be confused.
For the task of learning Python the right way I recommend "Learning Python", which is coming out in a brand new edition next month. The exercises are pretty good and are a combination of programming assignments and "do you think X is possible." types of questions. All in all, I recommend this text for the qualified reader - a programmer already skilled in Python and knowedgeable in artificial intelligence and efficient algorithm implementation - in other words, the working professional.
|