7 ms·
Critique: "Programming Collective Intelligence"
I have just gotten the book "Programming Collective Intelligence" and having read a few chapters i am wishing that i had gotten the book earlier!. At the same time, it shows how much most web applications being developed today lack deep technology (I am also guilty of this). Whats your take on this?
- jgrahamc 18y agoIt's a very good introductory text. If you get interested in going deeper then try: http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html http://www-csli.stanford.edu/~hinrich/information-retrieval-...
- aitoehigie 18y agothanks
- jimbokun 18y agoJust took a class with this as the text. Very readable, without dumbing anything down. This book (by two of the same authors) is also good: http://nlp.stanford.edu/fsnlp/ http://nlp.stanford.edu/fsnlp/
- azsromej 18y agoI subject myself to constant distractions but I did get through the first couple chapters and enjoyed them. I forced myself to focus on the material by writing the examples in Ruby (http://romej.com/archives/590/programming-collective-intelligence-with-ruby http://romej.com/archives/590/programming-collective-intelli...). I've only skimmed the other chapters.
- ctbk 18y agoI got the book yesterday and I've read the first chapters. It covers very interesting stuff in a introductive, easy to follow way. I like its pragmatical approach a lot, but I would have liked more depth in the teorical side of things maybe. I guess that is be material for a different kind of book, but an appendix would have been much appreciated.
- thorax 18y agoIt makes me wish all of the AI courses I took that used generic pseudocode really just used Python. It would have felt more tangible to me and given us more examples to hack on.
- jimbokun 18y agoI think many pseudo-code examples in text books are almost Python already, and that speaks well of Python as a language. "Executable pseudo-code", if you will.
- plinkplonk 18y ago"At the same time, it shows how much most web applications being developed today lack deep technology" Just my 2 cents but I find PCI a very shallow book without much "deep technology" in it either. AI cannot be divorced from the underlying math. PCI takes (in my opinion, feel free to differ) a math-lite, "dummies guide" approach to AI algorithms. I realize that my opinion is in the minority, and a lot of people think that the book is very cool. So take it with a grain of salt.
- bockris 18y agoWhile I agree with your assessment, IMO you don't seem to be the target audience. I loved PCI because it was math-lite. I'm a business applications programmer by trade and fun stuff like this isn't anywhere on our radar. I also have a family and the associated obligations like T-Ball and dance recitals so I don't have the time to dig deeply into the algorithms and math. PCI was a good balance to me between showing the theory and also providing concrete working code. My only quibble with the book was that a lot of the code was not idiomatic Python. (un-Pythonic, if you will.) Just my $0.02.
- brent 18y agoIt is certainly a "dummie's guide" approach and probably the best book applying this framework to machine learning related problems. It introduces a lot of ideas to people where the math would simply not be approachable. That said I have three complaints: 1 I think it tries to stay too high level on some areas where it is truly unavoidable and wouldn't scare anyone off to add a little depth. 2 I think it too often labels their implementation with a name that is associated with a family of techniques. This is simply going to embarrass/mislead the reader. In the interest of maintaining simplicity the book states several things that are flat out wrong. 3 No references. If someone wants to take the next step there is zero guidance. This is important because someone learning about a deep topic could read the book and a) think they understand it (not likely) and b) not have a clue where to look next.
- j2d2 18y agoCan you elaborate on the things it simply gets wrong?
- kurtosis 18y agoI just got it in the mail yesterday, and after a first reading I am really impressed. Most of the published material on these topics is academic and heavily mathematical. This type of practical guide is very useful. The things that I like the most so far: 1) The examples are real python code, and many chapters the code samples are small enough that you can follow the text by typing the code into an interpreter to try it out 2) He doesn't just test algorithms on standard datasets like MNIST or MovieLens - He gives programming examples for how to extract your own datasets e.g. by showing how to use the eBay api to download prices from eBay, or how to use the facebook api.
- andreyf 18y agoafter a first reading I am really impressed. Most of the published material on these topics is academic and heavily mathematical. To each his own - I thought this book could easly be condensed into a list of mathematical theorems - a page worth of links to wikipedia. 1) The examples are real python code Really crappy python code... definitely not the kind of code one should be looked at as example. He doesn't just test algorithms on standard datasets like MNIST or MovieLens - He gives programming examples for how to extract your own datasets e.g. by showing how to use the eBay api to download prices from eBay, or how to use the facebook api. He combines math theory with code and API's? What's the point of that? If you want to learn how to code python, read a python book. If you want to learn math, read a math book. If you want to learn API's, read the API docs. If you want to learn all three, read all three, but don't think that you know any of them if you see a bunch of badly coded examples of the results of knowing them.
- kurtosis 18y agoI agree with you about the non idomatic python code - It reminds me of my earliest attempts at python after switching from matlab. I saw a lot of criticism that PCI should have been done in pseudocode and I wonder if the book's coding style was a deliberate attempt to satisfy this complaint. I think that any maturing field needs a hierarchy of explanations that go progressively deeper into the subject - the explanations of the second law of thermodynamics that you get in freshman chemistry course are superficial compared to what you would deal with in a graduate course, but this doesn't mean that chem101 should be taught at the grad level, or that it is pointless to teach freshmen about the second law. The real danger is if you lie or misrepresent the facts in an attempt to simplify. I'm sure there are some errors and falsehoods in PCI but I didn't see anything too bad in the one day that I've had the book. Learning API's by reading the docs sounds like trying to learn english by reading the dictionary - It's just my personal preference, but I feel that I learn more effectively by reading real source code that works (even if it is horribly written)
- sunkencity 18y agoI found the book really captivating and very useful. It's seldom a book about programming contains so much stuff that one can put to use.
- berryg 18y agoLooks very interesting. Ordered it right away.
- dfranke 18y agoIt doesn't go as deep as I wish it did. However, it still gives an excellent introduction to a lot of techniques I've never heard of before and can now look up in more detail when I need to.