Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Other Sellers on Amazon
+ $3.99 shipping
+ Free Shipping
+ Free Shipping
Programming Collective Intelligence: Building Smart Web 2.0 Applications Paperback – August 23, 2007
|New from||Used from|
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
About the Author
Toby Segaran is a software developer and manager at Genstruct, a computational systems biology company. He has written free web applications for his own use and put them online for others to try, including: tasktoy, a task management system; Lazybase, an online application that lets users design, create and share databases of anything they like; and Rosetta Blog, an online tool for practicing Spanish and French by reading blogs along with their translations and lists of common words. Each of these has several hundred regular users.
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
- The book gives a good survey of common Machine Learning algorithms. It explains what kind of problems these algorithms are good for. That's perfect for someone who wants to get a quick overview and has no background in Machine Learning.
- The book is very easy to understand. The writing style is very casual. Even people without formal training in Computer Science should have no problem. The only thing that's required is basic programming knowledge, preferably in Python.
- Among all of the theoretical ML books out there it's refreshing to find a book that applies the algorithms to real-world problems.
Now the negative points. The following are not necessarily negatives for everyone, as it really depends on what you were looking for in this book. However, I was expecting a bit more, and was disappointed about the following:
- Half of the books is code. I just don't see the point in printing full listing of Python code. Why not give shorter pseudocode and make the Python code available on the website? The long code listings only obfuscate the ideas instead of demonstrating how to apply them. If you take away the code listings there are maybe 150 pages of "real" content left.
- The very casual and easy-to-understand style comes at a price. The book does not go into the mathematical details of any of the algorithms. I understand that this wasn't the books intention to begin with, but I would argue that some mathematical background is necessary in order to efficiently apply complex algorithms. If you want to apply the algorithms presented in the book to slightly different or more complex problems, or wish to understand the advantages/disadvantages of each of the algorithms you'll have to know the basic math behind them.
- The algorithms are very poorly implemented. Looking at some of the code makes me cringe. While the code in the book may work for "Building a search engine" for a few thousand pages, or optimizing problems with a handful of variables, it certainly won't work for more interesting problems that involve real-world data, which is orders of magnitude larger. And the real-world scale is where these algorithms actually become interesting. The code in this book will only work for small examples where efficiency play no role. I understand the author wanted to keep the code as simple as possible, but in my opinion a few notes about how algorithms can be made more efficient would have been necessary. I can see many people trying to apply these algorithms to their real-world data, and getting stuck because of the poor implementation.
This book is for those who realise programming, no matter what language, can do amazing things once you understand some simple concepts to tell a story through data. It gets you out of the mind set of, "I have some data stored here, and I will present it here". Instead, "I have some data stored here, how do I show, create understanding, explore, wedge out, predict, recommend it here"
Most of the topics presented in this book are not new in any sense, however they are not old either. They're tried and proven methods for creating meaning from datasets. They will be used for decades to come because they work! There are other books on the topics presented, like I said they are not new, however the simplicity of Python provides a frictionless entry for anyone wanting to get up and running with out a bloated IDE or framework to make it happen.
Those who are thinking, "well it's Python, and Python can't do X", I say to you a language does not determine what can and can not do it is the developer. At the end of the day the capability of the developer determines what the language can and can't do. If it seriously can't do something then build an extension to the language! With this thinking you can port what is presented in this book to any language. Python was chosen for it's simple constructs and readability.
If you're ever going to by a book on this topic buy this. Not the kindle, but the hard copy. The kindle version I've found doesn't present well for the code sections.
Overall this book is a great reference and is also a great primer if wanting to go deeper. It will allow you to tackle your next project with a different mindset and allow your users to discover and learn new things about their online surroundings and themselves!
Finally, the the author references old versions of python libraries that no longer 'work as advertised', or that have changed so radically that the example code will not even run - you'll be spending hours just figuring out how to update the code to be compatible with newer versions of the libraries referenced in the book. That in itself is a frustrating experience.
My advice is, get another book for Python or ML if that's what you're looking for and don't waste your time with this one.