|
|||||||||||||||||||||||||||||||||||
|
71 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
128 of 133 people found the following review helpful:
4.0 out of 5 stars
Putting Theory into Practice,
By Syd Logan (Carlsbad, CA USA) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
This book is probably best for those of you who have read the theory, but are not quite sure how to turn that theory into something useful. Or for those who simply hunger for a survey of how machine learning can be applied to the web, and need a non-mathematical introduction.
My area of strength happens to be neural networks (my MS thesis topic was in the subject), so I will focus on that. In a few pages of the book, the author describes how the most popular of all neural networks, backpropagation, can be used to map a set of search terms to a URL. One might do this, for example, to try and find the page best matching the search terms. Instead of doing what nearly all other authors will do, prove the math behind the backprop training algorithm, he instead mentions what it does, and goes on to present python code that implements the stated goal. The upside of the approach is clear -- if you know the theory of neural networks, and are not sure how to apply it (or want to see an example of how it can be applied), then this book is great for that. His example of adaptively training a backprop net using only a subset of the nodes in the network was interesting, and I learned from it. Given all the reading I have done over the years on the subject, that was a bit of a surprise for me. However, don't take this book as being the "end all, be all" for understanding neural networks and their applications. If you need that, you will want to augment this book with writings that cover some of the other network architectures (SOM, hopfield, etc) that are out there. The same goes for the other topics that it covers. In the end, this book is a great introduction to what is available for those new to machine learning, and shows better than any other book how it applies to Web 2.0. Major strengths of this book are its broad coverage, and the practicality of its contents. It is a great book for those who are struggling with the theory, and/or those who need to see an example of how the theory can be applied in a concise, practical way. To the author: I expect this book will get a second edition, as the premise behind the book is such a good one. If that happens, perhaps beef up the equations a bit in the appendix, and cite some references or a bibliography for those readers interested in some more in depth reading about the theory behind all these wonderful techniques. (The lack of a bibliography is why I gave it 4 stars out of 5, I really think that those who are new to the subject would benefit greatly from knowing what sits on your bookshelf.)
65 of 67 people found the following review helpful:
5.0 out of 5 stars
Accessible introduction to complex topics,
By
Amazon Verified Purchase(What's this?)
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
Segaran has done an excellent job of explaining complex algorithms and mathematical concepts with clear examples and code that is both easy to read and useful. His coding style in Python often reads as clearly as pseudo-code in algorithm books. The examples give real-world grounding to abstract concepts like collaborative filtering and bayesian classification.
My favorite part is how he shows us code (gives it to us!) that goes out into the world, grabs masses of data and does interesting things with it. The use of a hierarchical clustering algorithm to dig into people's intrinsic desires in life as expressed in zebo is worth the price of the book alone. The graph that shows a strong connection between "wife", "kids", and "home" but a different connection between "husband", "children", and "job" is IMHO just fascinating. Gems like that make this book worth reading cover to cover. After that it can happily hang out on your shelf as a reference anytime you need to build something to mine user data and extract the wisdom of crowds.
57 of 60 people found the following review helpful:
5.0 out of 5 stars
Understanding the logic behind sites like Amazon and Google...,
By Thomas Duff "Duffbert" (Portland, OR United States) - See all my reviews (VINE VOICE) (TOP 500 REVIEWER) (HALL OF FAME REVIEWER) (REAL NAME)
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
Have you ever wondered how some of those "collective intelligence" sites work? How Amazon can suggest books that you'll like based on your browsing history? How a search engine can rank and filter results? Toby Segaran does a very good job in revealing and teaching those types of algorithms in his book Programming Collective Intelligence: Building Smart Web 2.0 Applications. While I'm not ready to run out and build my own version of Facebook now, at least I can start to understand how sites like that are designed.
Contents: Introduction to Collective Intelligence; Making Recommendations; Discovering Groups; Searching and Ranking; Optimization; Document Filtering; Modeling with Decision Trees; Building Price Models; Advanced Classification - Kernel Methods and SVMs; Finding Independent Features; Evolving Intelligence; Algorithm Summary; Third-Party Libraries; Mathematical Formulas; Index In each of the chapters, Segaran takes a type of capability, be it decision-making or filtering, and shows how a programming language can be used to build that feature. His examples are all in Python, so it helps if you are already familiar with that language if you want to actually work with the code. But even if you don't know Python, the examples are clear and detailed enough that you can follow along and get the gist of what's happening. I personally think that it would help immensely if you had a background in mathematics and statistics. You can use the code here without having a detailed understanding of math, but I'm sure much of this would be more deeply appreciated if you already know about such things as Tanimoto similarity scores, Euclidean distances, or Pearson coefficients. From my perspective (a non-Python programmer *without* the math background), I was more interested in understanding the overall picture about things like how ranking systems work or how recommendation engines are structured. While there was more detail than I needed (or understood), I still felt as if I accomplished my goal. I have a much greater appreciation for what companies like Google and Amazon have done in building web applications that allow the knowledge and wisdom of groups to be gathered and applied to my own preferences. Statistical programmers will probably find years of entertainment here. :) "Normal" programmers will expand their horizons, too.
18 of 18 people found the following review helpful:
5.0 out of 5 stars
The most accessible book on machine learning I've found,
By
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
I first learned of this book just a few weeks ago, shortly before it was available. I immediately read the sample chapter on the publisher's website and was certain I had to get a hold of a copy.
I was not in the least bit disappointed with what I found. It has been quite a while since I've looked at any Python code (I'm more of a Ruby fan, personally), but the code is easy to follow and it's a simple matter to extract the basic concepts into any language. I have spent quite a few years now watching the field of machine intelligence from the sidelines, occasionally reading the odd technical write up or wikipedia article, trying to wrap my brain around the basic ideas. The thing is, it's not clear to me that in some regards, it's not that complex. It's just that most of the existing books and articles are written for those immersed in the field. This book is not like that. It explains things in clear language that is easy to follow, using simplified examples and making excellent use of graphics to "show" you how it works. If you really want to dig in deep, Segaran provides exercises at the end of each chapter and gives you an appendix full of mathematical formulas (the "pure" representation of the algorithms). Finally, I should mention that the last chapter does what so many other technical books should but don't: it clearly summarizes everything he has shown you. He does this in a straightforward way so that you won't have to go searching through the book, rereading everything again, to put these techniques into practice.
35 of 40 people found the following review helpful:
2.0 out of 5 stars
Nice introduction to exciting topics but lacks depth,
By Heavy Reader (Austin, TX) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
I think this is a good, easy-to-read intro to several interesting data-centric software technologies, but it is superficial.
For example, their collaborative filtering (ratings + recommendations) section illustrates only the most simplest of algorithms and completely skips over more advanced techniques (improved normalization, matrix factorization, and others), it skips over even basic benchmarking of the rec system (IMO, if you aren't doing objective benchmarks and tuning it off of those metrics, your rec system is useless), and doesn't address any of the common pitfalls and problems (sparsity, overfitting, normalization problems, scalability issues). I guess that is expected. If you want a book that's easy to read that can get you excited about some cool ares in software development, this book is great. If you want information beyond the introductory casual reading level, look elsewhere.
16 of 17 people found the following review helpful:
2.0 out of 5 stars
Shallow, poorly edited and out of date - Avoid,
By
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
This book covers a lot of topics of recent interest in the field of machine learning, data mining etc., frequently using online datasets for its examples. The code samples are in Python, and some knowledge of Python is assumed.
Unfortunately the book suffers from a number of problems. As other reviews have noted, the editing is very sloppy indeed: many of the code samples don't work, due to basic editing errors such as variables with different names on different lines of code, and frequently the text describing the code does not match the code it surrounds. Additionally, while the code samples aim to be brief and informal, they are written in a poor coding style: readability is sacrificed frequently for very small space savings. Variable names follow the "wordsruntogether" style rather than using underscores_like_this or camelCase (as normal Python style would recommend), the author doesn't even bother to put spaces around his equals signs, and expressions are telescoped onto one line where a little more space would have made the example much clearer (particularly to anyone meeting Python for the first time). Coverage of what are frequently fairly advanced mathematical topics is quite superficial, and the author tries to maintain the fiction that you can understand this with only a high-school or perhaps college 101 math background. This just isn't true, and results in a book that fails everyone: those who know the math are annoyed and unsatisfied at the depth, while those that don't are probably mystified and confused. As well as being mostly non-functional for reasons of poor editing, many of the code samples also no longer work as they rely on APIs of websites such as Facebook, Hot or Not and Zillow which have changed or which no longer function. While we can't really fault the author for this after 3+ years since publication, it does add to the reasons not to buy the book now. Fortunately the Kindle "sample chapter" for this book is about 75% of the book's content, so you can read most of it for free. It would be nice if O'Reilly's errata page for the book was maintained, and also if the Kindle edition had the errata applied to it. But I guess that is too much to ask. It's worth reading the free chapters in the Kindle sample if you want a quick skim of these topics and aren't going to bother with the code samples, but don't spend money on the book or time on the code.
14 of 15 people found the following review helpful:
5.0 out of 5 stars
One of the BEST book I've read for last 10 years,
By MJ (KOREA) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
I bought lots of books on the field of machine learning, but it was hard to understand when it goes deeper with lots of mathmatics. Even though I understand the concept, I had no idea how to implement it.
After reading this book, all the theories that I've been struggling with became very clear. Toby did a great job to explain these tough topics with proper graphics and easy examples. This book is one of the best book I've ever read for last 10 years (in several hundreds books).
17 of 19 people found the following review helpful:
5.0 out of 5 stars
A pragmatic and bright approach to a fascinating subject,
By Raul Abreu "Raul" (Hong Kong) - See all my reviews
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
"Collective Intelligence" is a masterpiece on a subject that is difficult to approach unless you enjoy reading highly specialized papers.
The subject is extremely interesting in the anytime/anywhere information age where data mining technologies and smart algorithms are shaping the way we experience our "digital" lives. It is hard to get up from the chair and walk away from the computer before finishing reading (and experiencing by coding/playing around with the so interesting examples in the book), like in a good thriller you just want to devour the information to the end and start experimenting yourself with all the new skills that this book will bring for sure to most of its readers. I have to say that this has been a 2in1 book as I was not familiar with Python. I am amazed now by the variety of libraries and the power of this language to do almost everything your imagination can bring. Both subjects together in the same book have made me to enjoy so much. Also, as a PhD candidate on Evolutionary Computation I cannot be happier. At last I can see a book with an excellent pragmatic approach and a "hands-on" philosophy which is, in fact, the best way to learn almost anything. Very useful indeed and it will definitely become permanent part of my most select library.
17 of 19 people found the following review helpful:
5.0 out of 5 stars
A "hands-on" approach to an otherwise abstract topic,
By
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
"Programming Collective Intelligence" is a great book. I took a college course on data mining and this book really would have come in handy.
From a "hands-on" programming perspective, the information on the useful libraries in python for crawling, parsing RSS feeds, python drawing, and accessing popular RESTful APIs are really valuable. The code samples are well documented and rather timely. I think Toby has done an amazingly cogent job of demonstrating the nuts and bolts of implementing the plethora of data mining and AI-related concepts pertinent to the field of Collective Intelligence. Additionally, I was new to Python and this book was a real eye opener. In fact, more than just a book on Collective Intelligence, this is a really useful Python book. I learned a lot about Python reading through the examples and trying to get them to work on my laptop. (I was new to Python before this book, but have since started using Python at my work). The author has demystified the abstract idea of Collective Intelligence and presented the concepts in an excellent programming language choice in Python. Most of the topics covered are things most developers just hear about. Taking a college course on Data Mining or Artificial Intelligence may expose one to the ideas, but I have never encountered a book that introduced the topics covered in "Programming Collective Intelligence" in a way so intuitive and familiar to the programmer. Distilling all of the topics into a set of very useful Python script really illustrated how practical and available these concepts really are in ones daily work. I will definitely make use of Toby's book.
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Great, simple presentation of some powerful techniques,
By
This review is from: Programming Collective Intelligence: Building Smart Web 2.0 Applications (Paperback)
Programming Collective Intelligence is a book about applying data mining techniques to analyse collections of data. There is submerged information in Ebay prices, in Facebook profile networks, in collections of movie reviews, in news sites, in the stockmarket; this book by Toby Segaran shows ways to extract, visualise, understand, and predict that information.
Each chapter explains and explores a different data mining algorithm, and builds up a working example in Python, while presenting different methods and parameters of the implementation. I hadn't really worked with Python before, but found the code easy to follow, and picked up some interesting Python idioms that I haven't seen in other languages before. Chapters end with a set of exercises to follow that build your understanding. As you follow the examples you build up a reasonably generic code base that allows you to swap in and out different implementations, and reuse previous code to add to new applications. The examples use live examples from the web: sites like Ebay, Facebook, and Yahoo Finance, and this makes the book more interesting and the results more visceral than some other books on the subject which use more contrived or obscure examples. Even though there is a strong web (or web 2.0) focus on the examples, the methods and the understanding is useful for a whole range of applications. Some of the topics covered: * Bayesian classifiers to detect spam, or to file news articles into site sections * Hierarchical and k-means clustering to discover groups of similar items in massive sets * Euclidiean distance, Pearson Correlation Coefficient, Tanimoto Coefficient: ways to measure the distance (or difference) between items * Neural networks to predict user behaviour and improve search result ordering * Optimisation methods like hill climbing, simulated annealing, and genetic algorithms * Non-negative matrix factorization * Support vector machines and kernel methods to go where linear regression can't I found it exciting to read -- it's one of those books that give you a whole bunch of new ideas for things to build as you read it. The presentation is very good: no background is assumed, and it doesn't talk down to those more experienced. Recommended. |
|
Most Helpful First | Newest First
|
|
Programming Collective Intelligence: Building Smart Web 2.0 Applications by Toby Segaran (Paperback - August 23, 2007)
$39.99 $26.39
In Stock | ||